프로그래머스 lv.1 내적

J·2023년 6월 24일
0

programmers

목록 보기
26/33

문제 링크 - 내적


문제 설명

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

입출력 예 설명

입출력 예 #1

  • a와 b의 내적은 1(-3) + 2(-1) + 30 + 42 = 3 입니다.

입출력 예 #2

  • a와 b의 내적은 (-1)1 + 00 + 1*(-1) = -2 입니다.

풀이

  1. 빈 배열 생성.
  2. 반복문으로 a.length 만큼 돌며 각 반복에서 a[i] * b[i]의 의 결과를 빈 배열에 푸시.
  3. 배열의 모든 원소를 더한 값 반환.

코드

function solution(a, b) {
    const result = [];
    for (let i = 0; i < a.length; i++) {
    result.push(a[i] * b[i]);
    }
    return result.reduce((acc, cur) => acc + cur, 0);
}

다른 사람의 코드

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

생각

  • reduce 메서드를 한 번만 사용하니 코드 실행 시간이 확실히 단축됨.
  • reduce 메서드 콜백 함수의 3번째 매개변수에는 인덱스를 넣을 수 있음. 공부하기.
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보