프로그래머스 길이에 따른 연산 JavaScript
KUKJIN LEE • 8개월 전 작성
정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
해설
먼저 입력된 배열의 길이를 확인하고, 배열의 길이에 따라 다른 연산을 수행합니다.
문제 해결을 위해 가장 중요한 부분입니다.
reduce 함수는 배열의 각 요소에 대해 주어진 함수를 실행하고, 그 결과를 누적하는 고차 함수입니다.
- num_list.reduce((acc, cur) => acc * cur, 1)는 배열의 각 요소를 누적곱하는데, 초기값(1)으로 시작합니다.
- num_list.reduce((acc, cur) => acc + cur, 0)는 배열의 각 요소를 누적합하는데, 초기값(0)으로 시작합니다.
배열의 길이가 10 이하일 때는 요소들의 곱을, 그렇지 않을 때는 요소들의 합을 반환합니다. 간결하고 효율적으로 수행하기 위해 reduce 함수를 사용하여 누적 곱셈 또는 누적 덧셈을 수행하고 있습니다.
function solution(num_list) {
if (num_list.length <= 10) {
return num_list.reduce((acc, cur) => acc * cur, 1);
} else {
return num_list.reduce((acc, cur) => acc + cur, 0);
}
}