길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어질 때, a와 b의 내적을 반환하는 함수 구현하기
길이가 같은 두 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 |
a와 b의 길이가 같고, a의 i번째 원소와 b의 i번째 원소의 곱들의 합을 구하는 문제이므로, 반복문을 통해 구현했다.
function solution(a, b) {
let answer = 0;
for (let i = 0; i < a.length; i++) {
answer += a[i] * b[i];
}
return answer;
}
for
문으로 구현할 수도 있지만, map
과 reduce
를 사용해서 구현할 수도 있다.
function solution(a, b) {
return a.map((x, i) => x * b[i]).reduce((acc, curr) => acc + curr, 0);
}
동일한 로직을 Python으로 구현한다면, zip
함수를 사용하면 된다.
def solution(a, b):
answer = 0
for x, y in zip(a, b):
answer += x * y
return answer
sum
함수를 사용하면, 아래와 같다.
def solution(a, b):
return sum(x * y for x, y in zip(a, b))