한 걸음씩 기록하며

[프로그래머스 코딩테스트] 내적 본문

알고리즘 & 코딩테스트

[프로그래머스 코딩테스트] 내적

Haksae 2022. 1. 16. 01:28

[내적]

문제 설명 :

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

 

📁 입출력 예시

👉🏻  답안

1) reduce 함수 사용

function solution(a, b) { 
  return a.reduce((acc, cur, i) => acc += cur * b[i], 0 ); 
}               //누적값, 현재값, 인덱스 => 누적값 += a[i] * b[i], 초기값);

2) for문 사용

function solution(a, b) {
    let sum = 0;
    for (let i = 0; i < a.length; i++) {
    sum += ( a[i] * b[i]) // for문 돌려서 곱해서 더하기
    } return sum;
}

 

📑  간단한 설명

reduce 작성하다가 초기값 때문에 고생했음.. 다른건 무난..

 

 

💪🏻 공부하면 좋을 답안

var solution = (a,b) => a.reduce((a,c,i) => a + c * b[i], 0);
  • arrow function 두번으로 간결하게 만들 수 있다.
Comments