Dev/Algorithm

간만의 알고리즘 공부 - 18 (내적)

healthyryu 2024. 7. 17. 15:00
문제 설명
길이가 같은 두 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의 길이)

제한사항
- a, b의 길이는 1 이상 1,000 이하입니다.
- a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

입출력 예

내가 푼 방법

fun solution(a: IntArray, b: IntArray): Int {
    return a.foldIndexed(0) {index, sum, item -> sum + item * b[index]}
}

 

 

이전에 풀었던 음양 더하기 문제가 생각났고 똑같다고 판단되어서 foldIndexed() 를 사용해서 문제를 풀었습니다. 속도는 괜찮아서 점수도 잘 나겠거니 싶었는데... 1점...

 

코드 첨삭

fun solution(a: IntArray, b: IntArray): Int {
    var answer = 0
    for (i in a.indices) {
    	answer += a[i] * b[i]
    }
    return answer
}

 

일단 깔끔하네... 이와 유사하게 만들려다가 foldIndexed() 를 사용했습니다.

반응형