Notice
Recent Posts
Recent Comments
«   2025/05   »
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
Tags
more
Today
Total
관리 메뉴

차차로그

[JS] 월간 코드 챌린지 시즌1 > 내적 본문

코딩테스트

[JS] 월간 코드 챌린지 시즌1 > 내적

차차한 2022. 8. 12. 14:42

길이가 같은 두 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의 길이)

function solution(a, b) {

    let sum = 0;
    for(var i = 0; i < a.length; i++){
             sum += a[i] * b[i];
    }
    return sum;
}

처음에는 reduce로 하고 싶었는데 뭐가 잘 되길래 for문을 돌려서 값을 구했다.

a배열과 b배열의 길이가 같아서 a의 길이 기준으로 for문을 돌렸다.

function solution(a, b) {
    return a.reduce((acc, val, idx) => 
         acc += a[idx] * b[idx], 0
    );
}

reduce()로 문제를 풀었을 때

여기서는 인덱스를 이용해 각 배열[인덱스]로 값을 가져온 후 acc에 값을 더했다.

주의할 점은 초기값을 0으로 정해주지 않으면 a배열의 첫 번째 값으로 acc가 설정되기 때문에 꼭 지정을 해줘야 한다!

Comments