길이가 같은 두 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 | result |
---|---|---|
[1,2,3,4] | [-3,-1,0,2] | 3 |
[-1,0,1] | [1,0,-1] | -2 |
내적의 자세한 개념은 너무 수학적인 개념이라 이해하기 어려웠지만,
입출력예시에서 보여준 결과로 유추하자면, 두개의 배열 매개변수의 인덱스의 순서대로 서로 곱한다음
그 값을 더하고 더하는것 같다, 내적이라는 명칭도 곱하고 쌓는다 (더한다) 라는 뜻이니 맞는듯 하다.
그렇다면 주어진 두개의 배열의 각각의 인덱스 순서대로 곱해준다음, 그 값을 더하면 되겠다.
반복문을 사용해서 배열을 순회할 수 있겠고, 배열순회관련 메서드를 이용할 수 도 있겠다.
function solution(a, b) {
let result = 0;
for(let i = 0; i < a.length; i++) {
result += a[i]*b[i];
}
return result;
}
두개의 배열을 순회하는 반복문을 하나 만들어 준다, 여기서 반복문은 한개만 있으면 된다.
두개의 배열은 서로 길이가 같기때문, 그렇기 때문에 한개의 반복문으로 두개의 배열에 모두 적용시켜
그 값을 받으면 된다, 각각의 i번째 인덱스에 해당하는 값들을 서로 더해준다음, 그 값을
최종 결과값이 될 result에 담고 계속해서 나오는 값들을 result에 쌓아준다음 최종적으로 나오는
result 값을 리턴하면 해답을 얻을 수 있다.