[프로그래머스] 길이에 따른 연산
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 길이에 따른 연산 · js 길이에 따른 연산
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 길이에 따른 연산 · js 길이에 따른 연산
문제 설명
정수가 담긴 리스트 num_list
가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.
제한사항
- 2 ≤
num_list
의 길이 ≤ 20 - 1 ≤
num_list
의 원소 ≤ 9
입출력 예
num_list | result |
---|---|
[3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1] | 51 |
[2, 3, 4, 5] | 120 |
입출력 예 설명
입출력 예 #1
- 리스트의 길이가 13이므로 모든 원소의 합인 51을 return합니다.
입출력 예 #2
- 리스트의 길이가 4이므로 모든 원소의 곱인 120을 return합니다.
나의 풀이
function solution(num_list) {
if (num_list.length >= 11) {
return num_list.reduce((a, b) => a + b, 0);
} else {
return num_list.reduce((a, b) => a * b, 1);
}
}
나의 두번째 풀이(Code Refactoring)
function solution(num_list) {
return num_list.length >= 11
? num_list.reduce((a, b) => a + b, 0)
: num_list.reduce((a, b) => a * b, 1);
}
참고 할 만한 다른 사람의 코드
function solution(num_list) {
let answer = 0;
if (num_list.length <= 10) {
answer = 1;
for (i = 0; i < num_list.length; i++) {
answer *= num_list[i];
}
} else {
for (i = 0; i < num_list.length; i++) {
answer += num_list[i];
}
}
return answer;
}