https://programmers.co.kr/learn/courses/30/lessons/70128?language=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의
programmers.co.kr
for문을 돌릴 줄만 안다면 간단히 풀 수 있는 문제이다. for문이 돌아감에 따라 증가하는 인덱스에 놓인 a배열과 b배열의 각 요소를 곱하여 answer에 더해주기만 하면 된다. for문을 돌리는 방법은 다양하게 있으나 여기서는 배열을 넣을 경우 인덱스를 반환하는 for...in문을 사용하였다. 또 다른 해답으로는 reduce() 메서드를 활용하여 단 한 줄에 정답을 반환하는 코드를 다른 사람 것을 참고하여 작성하였다.
Solutions
Solution 1.
const a = [1, 2, 3, 4]; const b = [-3, -1, 0, 2]; // const a = [-1,0,1] // const b = [1,0,-1] console.log(solution(a, b)); function solution(a, b) { let answer = 0; for (const i in a) { answer += a[i] * b[i]; } return answer; // return a.reduce((x, y, i) => x + y * b[i], 0); }
함께 보기
for...in - JavaScript | MDN
The for...in statement iterates over all enumerable properties of an object that are keyed by strings (ignoring ones keyed by Symbols), including inherited enumerable properties.
developer.mozilla.org
Array.prototype.reduce() - JavaScript | MDN
The reduce() method executes a user-supplied "reducer" callback function on each element of the array, in order, passing in the return value from the calculation on the preceding element. The final result of running the reducer across all elements of the a
developer.mozilla.org
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 완주하지 못한 선수 by JavaScript (0) | 2022.07.04 |
---|---|
[Programmers] level 1: 소수 만들기 by JavaScript (0) | 2022.07.02 |
[Programmers] level 1: 음양 더하기 by JavaScript (0) | 2022.07.01 |
[Programmers] level 1: 없는 숫자 더하기 by JavaScript (0) | 2022.07.01 |
[Programmers] level 1: 로또의 최고 순위와 최저 순위 by JavaScript (0) | 2022.07.01 |
댓글