23. [Java] 길이에 따른 연산
https://school.programmers.co.kr/learn/courses/30/lessons/181879
- 정수가 담긴 리스트 num_list가 주어질 때,
- 리스트의 길이가
- 11 이상 → 리스트에 있는 모든 원소의 합 return
- 10 이하 → 리스트에 있는 모든 원소의 곱 return
- 2 ≤ num_list의 길이 ≤ 20
- 1 ≤ num_list의 원소 ≤ 9
- num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않는다.
정답코드
- num_list의 길이가 11 이상이면
→ 배열의 모든 원소를 더해서 반환 - 그렇지 않으면
→ 배열의 모든 원소를 곱해서 반환
class Solution {
public int solution(int[] num_list) {
int answer = 0;
if (num_list.length >= 11) {
for(int num : num_list) {
answer += num;
}
} else {
answer = 1;
for (int num : num_list) {
answer *= num;
}
}
return answer;
}
}
오답
answer는 처음에 0으로 선언되어 있는데, 곱셈을 할 때 0으로 시작하면 무조건 결과는 0이 된다.
그래서 곱셈을 하는 경우에는 반드시 1로 초기화해야 한다.
else 블럭 안에서 곱셈이 수행되기 전 answer을 1로 초기화하는 코드 한 줄을 넣어서 해결했다.