강민승 2022. 11. 19. 16:23

문제

 

나의 풀이

 

for문을 통해서 a와 b의 i번째 값을 더해서 배열에 리턴을 해준다.  

 

 

 

 다른 사람 풀이방식

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

reduce함수를 볼때마다 for문은 정말 모를때만 사용하자고 계속해서 생각하게되는데 어떡하면 reduce함수를 사용하도록 머리가 코드를 생각할까 싶다. 

위의 코드는 a[i]*b[i]가 중점인 코드에서 크게 다른 점은 없지만 reduce함수에서도 index 인자를  사용할 수 있다는 점. 그리고 더한 값을 저장할 수 있는 인자도 있다는 점을 계속해서 생각해야할 것 같다.

 

acc는 accumulator로 콜백의 반환값을 누적한다. 다음 인자(_)로는 현재 값을 의미하는 인자(cur)인데 이번 문제에서는 사용하지 않은 듯하고, i(index)를 활용하여 결과값을 반환했다.