Javscript - 내적

이율곡·2023년 7월 25일

Programmers

목록 보기
44/44
post-thumbnail

내적

문제

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

입출력 예

abresult
[1,2,3,4][-3,-1,0,2]3
[-1,0,1][1,0,-1]-2

핵심

각 배열의 동일한 인덱스에 있는 요소끼리 곱하고, 이들을 모두 더하는 것이다.

  • 이는 벡터의 내적을 계산하는 공식과 일치한다고 한다.

접근방법

1. 두 배열의 동일한 인덱스에 있는 요소끼리 곱합니다.

2. 이들을 모두 더하여 두 벡터의 내적을 계산합니다.

풀이

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

누적값을 acc, 현재 요소의 값을 val, 현재 요소의 인덱스는 i다. 각 단계에서는 acc에 val과 b[i]의 곱을 더하여 누적값을 갱신하고, 이 과정을 모든 요소에 대해 반복한 후 누적값을 반환한다.


정리하기

이 문제는 배열을 다루는 기본적인 능력과, 벡터의 내적 개념을 이해하고 적용하는 능력이 요구된다. 백터라는 부분을 이 문제를 통해 알게 되었고, 좀 더 수학적인 부분을 알게 되었다.

그래도 핵심은 reduce이고 이를 어떻게 활용했는지가 더 중요하다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글