정수가 담긴 리스트 num_list
가 주어질 때, 리스트의 길이가 11
이상이면 리스트에 있는 모든 원소의 합을 10
이하이면 모든 원소의 곱을 return
하도록 solution
함수를 완성하는 문제이다.
reduce
메서드의 활용function solution(num_list) {
let answer = (num_list.length > 10) ? 0 : 1;
for(let i = 0; i < num_list.length; i++) {
if(num_list.length > 10) {
answer+= num_list[i];
} else {
answer*= num_list[i];
}
}
return answer;
}
function solution(num_list) {
const add = (accumulator, currentValue) => accumulator + currentValue;
const mult = (accumulator, currentValue) => accumulator * currentValue;
return num_list.length > 10
? num_list.reduce(add, 0)
: num_list.reduce(mult, 1);
}
reduce
메서드를 사용하여 간결하고 효율적인 코드로 문제를 해결하며, 명시적인 콜백 함수로 합산과 곱셈의 로직을 깔끔하게 분리한다.const solution = list => list.reduce((acc, v) => list.length > 10 ? acc + v : acc * v)
reduce
를 사용하여 한 줄로 코드를 구현하지만, 각 요소 처리 시 배열의 길이를 반복적으로 확인하는 비효율성이 있다.