길이가 같은 두 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의 길이)
내적을 간단하게 표현하면 두 벡터(Vector)의 방향성을 확인하는 값이다. 결과값이 스칼라(Scalar)로 나오기 때문에 스칼라곱이라고도 한다. 좌표가 주어질 경우 문제에 나와있는 방식으로 계산한다. 문제에서 내적에 대한 계산 방법을 친절하게 알려주었기 때문에 문제 풀이에 대한 어려움은 없었다.
solution1
은 arr
배열에 a[i]*b[i]
를 담아서 각 요소의 합을 리턴했다.
solution2
는 sum
이라는 변수에 a[i]*b[i]
값을 더하여 리턴했다.
solution3
은 reduce
메서드를 이용해 바로 결과값을 리턴했다.
// solution1
function solution(a, b) {
let arr = [];
a.forEach((_, i) => {
arr.push(a[i] * b[i]);
});
const answer = arr.reduce((acc, cur) => acc + cur, 0);
console.log(answer);
return answer;
}
// solution2
function solution(a, b) {
let sum = 0;
a.forEach((_, i) => {
sum += a[i] * b[i];
});
return sum;
}
// solution3
function solution(a, b) {
const answer = a.reduce((acc, _, i) => (acc += a[i] * b[i]), 0);
return answer;
}
solution([1, 2, 3, 4], [-3, -1, 0, 2]); // 3