프론트엔드✏️/코드캠프
알고리즘 - reduce
당근먹는하니
2022. 5. 31. 22:34
728x90
반응형
a와 b 내적하기
길이가 같은 두 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의 길이)
내적이란 말 오랜만이당 ..ㅎ ㅎㅈㅅ에서 했었는데 ...
// 푼 과정
function solution(a, b) {
var answer = 0;
for(let i = 0; i < a.length; ++i){
console.log(a[i]*b[i])
// 누적해
answer += a[i]*b[i];
}
return answer;
}
누적한다는 걸 보니까 reduce로 풀고 싶어졌다.
function solution(a,b) {
var answer = 0;
answer = a.reduce((acc,_,i)=>acc += a[i]*b[i], 0);
// acc 누적값, (처리 할 현재 요소), 인덱스 => 콜백함수, 콜백함수의 첫번째 인자
return answer;
}
리듀서 함수의 네 가지 인자
- 누산기 (acc)
- 현재 값 (cur)
- 현재 인덱스 (idx)
- 원본 배열 (src)
return 문에서 바로 return 해도 될 것 같다.
function findIndex(callback, arr) {
// 여기에 코드를 작성하세요
for(let i = 0; i < arr.length; ++i) {
if(callback(arr[i])) return i
else continue;
} return -1 // 와..^_^
}
findIndex(function( data ) { return data % 2 === 0 }, [1, 3, 5, 4, 9, 10])
findIndex(function( data ) { return data % 2 === 0 },
[1, 3, 5, 7, 9])
이거 뭔가 풀고 뿌듯했다^^.. . 저 for문 뒤에 무심한 return -1 이 ,,, 너무 마음에 든다구~~~~~~~~~
728x90
반응형