Programmers/Level 1
[프로그래머스 / JavaScript] - 내적
LaKinRad
2022. 5. 3. 18:57
출처/프로그래머스
● 문제 설명
길이가 같은 두 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 이하입니다.
● 입출력 예
a | b | result |
[1, 2, 3, 4] | [-3, -1, 0, 2] | 3 |
[-1, 0, 1] | [1, 0, -1] | -2 |
● 입출력 예 설명
입출력 예 #1
- a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다.
입출력 예 #2
- a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다.
나의 풀이
function solution(a, b) {
return a.reduce((acc, val, idx) => acc += val * b[idx], 0)
}
acc는 sum의 기능을 수행할 것이기 때문에 초기값을 0으로 설정해주고,
배열 a의 index 값과 배열 b의 index 값을 매칭 시켜 곱해주어 acc에 누적시켰다.
후기
처음에는 map() 으로 풀었는데,
다른 변수를 선언하는 게 싫어서 고민을 하다 reduce()가 떠올라서 내가 생각하던 코드를 짤 수 있게 되었다.