
a와 b의 내적을 리턴하기
예시)

풀이
- for문을 사용해서 반복시키기
제출 코드

(코드 해석해 보기)
내적이라는 걸 처음 들어봐서 당황했으나,
예시와 공식이 나와있어서 다른 문제들에 비해서 무난하게 for문을 활용하여 풀었다
for문을 이용해서 a배열의 사이즈만큼 반복시키고 내적을 구하는 공식을 대입해 줬다
상당히 어려울 줄 알았는데, 생각보다 일찍 해결해서 다른 사람들의 풀이를 봤는데
zip, mapIndexed, indices라는 것들을 알게 되었다
zip
zip은 Index 순서가 동일한, 서로 연관된 리스트를 더욱 쉽게 사용한다
a.zip(b)
a와 b리스트의 값을 직접 묶기보단, 두 리스트값을 이용하여 새로운 값을 만들 때 사용된다
a zip b
List<Pair<T,T>>로 반환되며, 두 리스트의 값을 온전히 묶어서 관리할 때 사용한다
(Pair 타입이므로 반환 시 first와 second를 사용하여 각각 접근할 수 있다)
활용한 답을 보면, return a.zip(b).map{ it.first * it.second}.sum() 이 끝일 정도로 코드가 줄여진다
mapIndexed
map()과 동일하지만 람다함수, 인덱스까지 전달해 주는 함수이다
a.mapIndexed{ index , it -> it * b[index] }.sum() 만 쓰면 위 문제의 답이 나올 정도로 간편하다
indices
indices는 컬렉션 타입의 인덱스 범위를 반환한다
예를 들어, a에 데이터가 5개 있다면 a.indices는 0..4를 반환한다
for(i in a.indices) = for (i in 0..4) = for (i in 0 until a.size)인 셈이다
'코틀린(Kotlin) > 프로그래머스' 카테고리의 다른 글
[프로그래머스/코틀린(Kotlin)] 문자열 내림차순으로 배치하기 (0) | 2023.11.08 |
---|---|
[프로그래머스/코틀린(Kotlin)] 약수의 개수와 덧셈 (0) | 2023.11.07 |
[프로그래머스/코틀린(Kotlin)] 수박수박수박수박수박수박수? (0) | 2023.11.03 |
[프로그래머스/코틀린(Kotlin)] 가운데 글자 가져오기 (1) | 2023.11.03 |
[프로그래머스/코틀린(Kotlin)] 제일 작은 수 제거하기 (0) | 2023.11.02 |