본문 바로가기
Developer/Algorithm

Programmers 코딩테스트 연습 - 내적 (JavaScript)

by roqkfrlfhr 2021. 1. 18.

Programmers 프로그래머스 코딩테스트 연습 - 내적 (JavaScript)

 

Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 월간 코드 챌린지 시즌 1 중 내적 문제를 JavaScript로 풀어보도록 하겠습니다.

 

문제

문제 설명

길이가 같은 두 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 이하입니다.

 

입출력 예

a b result
[1,2,3,4] [-3,-1,0,2] 3
[-1,0,1] [1,0,-1] -2

 

입출력 예 설명

입출력 예 #1

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

입출력 예 #2

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

 

작성한 답

solution.js

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

 

설명

reduce를 사용하면 정말 간단하게 해결할 수 있는 문제입니다.

reduce에서 0으로 초기값을 설정해준 뒤,

accumulator 즉 누산기인 첫번째 인자 변수 s에,

배열의 각 값에 해당하는 두번째 인자 변수 v와,

현재 값의 index를 나타내는 세번째 인자 변수 i를 사용해 같은 b배열의 같은 index값을 가지고와 모두 더해준 뒤, 결과를 반환합니다.

 

Programmers 코딩테스트 연습 내적 문제

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글