문제 설명
길이가 같은 두 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() 를 사용했습니다.
반응형
'Dev > Algorithm' 카테고리의 다른 글
간만의 알고리즘 공부 - 20 (부족한 금액 계산하기) (2) | 2024.07.23 |
---|---|
간만의 알고리즘 공부 - 19 (직사각형 별찍기) (0) | 2024.07.21 |
간만의 알고리즘 공부 - 17 (핸드폰 번호 가리기) (0) | 2024.07.17 |
간만의 알고리즘 공부 - 16 (핸드폰 번호 가리기) (0) | 2024.07.16 |
간만의 알고리즘 공부 - 15 (제일 작은 수 제거하기) (0) | 2024.07.14 |