728x90
반응형
안녕하세요. 민쯔입니다.😊
이번에 내적 문제 해결방안에 대해 설명하겠습니다.
이번 문제는 정말 쉬운 편에 속해서 빠르게 풀었습니다.
function solution(a, b) {
var answer = 0;
for(let i = 0; i < a.length; i++){
answer += a[i] * b[i];
}
return answer;
}
저는 for문을 이용해서 풀었습니다.
문제 설명에 a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 라고 되어 있습니다.
for(let i = 0; i < a.length; i++)
- a 배열의 길이만큼 for문을 반복한다.
- a배열과 b배열은 같으므로 b.length를 써도 상관이 없다.
answer += a[i] * b[i];
- a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 임으로 값을 누적시키기 위해 +=을 사용한다.
저는 이렇게 풀었는데 다들 reduce를 사용하더라고요.
저도 reduce를 쓸까 했는데... 두배열을 더할 수 있나?? 이런 생각이 들어서 안 했는데
제가 그냥 reduce를 잘 몰라서 안 쓴 것 같아요😂 공부를 해야겠어요.
function solution(a, b) {
return a.reduce((acc, cur, idx) => acc += a[idx] * b[idx], 0);
}
return a.reduce((acc, cur, idx) => acc += a[idx] * b[idx], 0);
- acc : 누산기
- cur : 현재 값
- , 0이 초기값을 나타내므로 이 reduce에서는 처음의 현재 값이 0 임으로 0으로 0부터 시작
- idx : 현재 인덱스
728x90
반응형
'코딩 > 프로그래머스 코딩테스트' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) | 2021.10.14 |
---|---|
[프로그래머스] 예산 (0) | 2021.10.06 |
[프로그래머스] K번째수 (0) | 2021.10.02 |
[프로그래머스] 없는 숫자 더하기 (0) | 2021.09.17 |
[프로그래머스] 신규 아이디 추천 (0) | 2021.09.10 |