길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1]
입니다. (n은 a, b의 길이)
최종 코드
class Solution {
fun solution(a: IntArray, b: IntArray): Int {
var answer: Int = 0
var count = a.count().toInt()
for (i in 1 .. count) {
answer += a[i-1] * b[i-1]
}
return answer
}
}
a 랑 b의 개수가 똑같으니깐 그냥 a의 개수만 count 변수에 넣어놓고
for문으로 a[인덱스] * b[인덱스] 해준값을 answer에 더 해줬음
class Solution {
fun solution(a: IntArray, b: IntArray): Int {
var answer = 0
for (i in a.indices)
answer += (a[i] * b[i])
return answer
}
}
근데 생각해보니까 굳이 count() 안쓰고 indices 를 쓰면 더 간단했다.
좀 더 생각하고 풀걸
class Solution {
fun solution(a: IntArray, b: IntArray): Int {
return a.zip(b).map { it.first * it.second }.sum()
}
}
zip 이라는 애를 써서 풀수도있었다.
zip 함수 개념은 이렇다.
배열.zip(묶을 배열).map{ it.first(첫번째 배열의 요소) * it.second(두번째 배열의 요소)}.sum()
이렇게 사용하는 건가봄!
아직 공부할게 산더미로군~~