Skip to main content

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;
    }
}

오답

image.png

answer는 처음에 0으로 선언되어 있는데, 곱셈을 할 때 0으로 시작하면 무조건 결과는 0이 된다.
그래서 곱셈을 하는 경우에는 반드시 1로 초기화해야 한다.
else 블럭 안에서 곱셈이 수행되기 전 answer을 1로 초기화하는 코드 한 줄을 넣어서 해결했다.