문제 설명
길이가 같은 두 개의 1차원 정수 배열 a와 b가 매개변수로 지정됩니다.
a와 b에서 내적반환하려면 솔루션 기능을 완료하십시오.
이 경우 a와 b의 내적은 a(0)*b(0) + a(1)*b(1) + … + a(n-1)*b(n-1) 보지마. (n은 a와 b의 길이)
제한
- a와 b의 길이는 1보다 크거나 같고 1,000보다 작거나 같습니다.
- a와 b의 모든 숫자는 -1,000에서 1,000 사이입니다.
I/O 예시
(1,2,3,4) | (-3,-1,0,2) | 삼 |
(-1,0,1) | (1,0,-1) | -2 |
내 솔루션. 같은 지수를 계산하는 방식이라 유용합니다.
private fun solution(a: IntArray, b: IntArray): Int {
var answer: Int = 0
a.forEachIndexed { i, v ->
answer += v * b(i)
}
return answer
}
마스터스 풀. 코틀린 같습니다.
zip을 사용하려면 지도를 사용하세요. zip 나에게 새로운 것 같지만 나중에 유용 할 것이라고 생각합니다.
fun solution(a: IntArray, b: IntArray): Int {
return a.zip(b).map { it.first * it.second }.sum()
}
다른 마스터 mapIndexd로 해결했습니다.
class Solution {
fun solution(a: IntArray, b: IntArray): Int = a.mapIndexed { index, it -> it * b(index) }.sum()
}