프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 길이에 따른 연산(Java)

Sigfriede 2023. 5. 1. 01:52

  문제 설명

  정수가 담긴 리스트 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
class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int sum = 0;
        int mul = 1;
        for (int i = 0; i < num_list.length; i++) {
            if (num_list.length >= 11) {
                sum += num_list[i];
                answer = sum;
            } else {
                mul *= num_list[i];
                answer = mul;
            }
        }
        return answer;
    }
}

  각각 합과 곱을 담을 sum과 mul 변수를 생성합니다. mul은 곱을 담을 변수인데, 0으로 초기화할 경우 올바른 계산이 되지 않을 수 있으므로 1로 초기화합니다.

  for문이 num_list의 길이만큼 순회합니다. 만약 num_list의 길이가 11 이상이라면 sum 변수에 num_list의 i번째 인덱스를 더하기 할당합니다. answer에 계산이 끝난 sum을 할당합니다. 만약 if문의 조건을 충족하지 않는다면 mul 변수에 num_list[i]를 곱하기 할당합니다. answer에 계산이 끝난 mul을 할당합니다. 조건에 맞추어 answer가 반환될 것입니다.