반응형
Notice
Recent Posts
Recent Comments
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

UP

[프로그래머스 : JavaScript] 내적 본문

알고리즘/기타

[프로그래머스 : JavaScript] 내적

cijbest 2021. 5. 25. 15:14

문제 설명

길이가 같은 두 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 입니다.

 

문제풀이

두 배열을 곱하고 각각의 요소들을 더하면 되는 문제이다.

 

코드 TIP

배열.reduce((누적값현잿값인덱스요소) => { return 결과 }, 누적값의 초깃값);

 

누적값의 초깃값은 지정을 안해주면 배열의 첫번째 값으로 자동 지정된다.

 

ex)

result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
}, 0);
// 0 1 0
// 1 2 1
// 3 3 2
result; // 6
result = oneTwoThree.reduce((acc, cur, i) => {
  console.log(acc, cur, i);
  return acc + cur;
});
// 1 2 1
// 3 3 2
result; // 6 

예시 출처 : https://www.zerocho.com/category/JavaScript/post/5acafb05f24445001b8d796d

 

전체코드

function solution(a, b) {

    return a.reduce((acc, _, i) => acc += a[i] * b[i],0);
    
}
반응형
Comments