1. 문제 설명
길이가 같은 두 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의 길이)
2. 제한 조건
a, b의 길이는 1 이상 1,000 이하입니다.
a, b의 모든 수는 -1,000 이상 1,000 이하입니다.
3. 예시
입력/출력
4. 풀이
[for문]
function solution(a, b) {
var answer = 0;
for (let i = 0; i < a.length; i++)
answer += a[i] * b[i]
return answer;
}
[reduce 활용]
// 문제에서 출제된 answer의 1234567890의 값을 유지한 채 푸는 방법으로 reduce를 사용
function solution(a, b) {
var answer = 1234567890;
return answer = a.reduce((x, y, i) => x + (y*b[i]), 0);
}
// a가 [1,2,3,4] b가 [-3.-1.0,2] 일때 아래처럼 진행 된다.
// 0 + (1*-3) = -3
// -3 + 2*-1 = -5
// -5 + 3*0 = -5
// -5 + 4*2 = 3
.reduce ()
- reduce 메서드는 map, forEach와 비슷하게 배열의 요소들을 순회하면서 반복적인 연산을 하는 메서드이지만, map과 forEach와는 조금 다른 부분들이 있다.
기본 사용법은 인지하였으나 복잡해질수록 아직 이해도가 부족하여 좀 더 공부가 필요하다.
[기본 문법]
// reduce
const numbers = [1, 2, 3, 4];
numbers.reduce((누산값, 현재요소값, 현재요소의index, 현재배열) => {
return 다음누산값;
}, 초기누산값);
'개발 공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스 알고리즘] "서울에서 김서방 찾기" JavaScript / find, findIndex, indexOf (0) | 2022.03.14 |
---|---|
[프로그래머스 알고리즘] "문자열 내 p와 y의 개수" JavaScript / toUpperCase 소문자를 대문자로 (0) | 2022.03.14 |
[프로그래머스 알고리즘] "나누어 떨어지는 숫자 배열" JavaScript / 화살표 함수 표현(arrow function expression) (0) | 2022.03.13 |
[프로그래머스 알고리즘] "2016년" JavaScript / new Date() (0) | 2022.03.13 |
[프로그래머스 알고리즘] "부족한 금액 계산하기" JavaScript (0) | 2022.03.13 |