Beginner
2024-04-17

내적

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어질 때, a와 b의 내적을 반환하는 함수 구현하기

#99일지#99클럽#TIL#개발자스터디#코딩테스트#항해
직접 풀러가기

문제 설명

길이가 같은 두 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의 길이는 1 이상 1,000 이하입니다.
  • a, b의 모든 수는 -1,000 이상 1,000 이하입니다.
abresult
[1,2,3,4][-3,-1,0,2]3
[-1,0,1][1,0,-1]-2

풀이

a와 b의 길이가 같고, a의 i번째 원소와 b의 i번째 원소의 곱들의 합을 구하는 문제이므로, 반복문을 통해 구현했다.

JavaScript

function solution(a, b) {
    let answer = 0;
    for (let i = 0; i < a.length; i++) {
        answer += a[i] * b[i];
    }
    return answer;
}

for문으로 구현할 수도 있지만, mapreduce를 사용해서 구현할 수도 있다.

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

Python

동일한 로직을 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))