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()가 떠올라서 내가 생각하던 코드를 짤 수 있게 되었다.