프로그래머스 길이에 따른 연산

KIMYEONGJUN·2026년 6월 29일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요.

내가 이 문제를 보고 생각해본 부분

solution 메서드는 int[] num_list를 입력받는다.
배열의 길이를 length 변수에 저장한다.
길이가 11 이상이면 배열 원소들의 합을 구한다.
sum을 0으로 초기화한 후, 향상된 for문을 통해 배열 전체를 순회하면서 모든 원소를 더한다.
그 결과를 answer에 할당한다.
길이가 10 이하이면 배열 원소들의 곱을 구한다.
product를 1로 초기화하고 배열 전체를 순회하면서 모든 원소를 곱한다.
이 값을 answer에 할당한다.
answer 값을 반환한다.
main 메서드는 solution 메서드를 테스트하기 위한 진입점이다.
예제로 두 개의 배열 example1과 example2를 만든다.
solution 호출 결과를 각각 출력하여, 길이 11 이상일 때 합, 10 이하일 때 곱이 제대로 계산되는지를 확인한다.

코드로 구현

class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int length = num_list.length;

        if (length >= 11) {
            int sum = 0;
            for (int num : num_list) {
                sum += num;
            }
            answer = sum;
        } else {
            int product = 1;
            for (int num : num_list) {
                product *= num;
            }
            answer = product;
        }
        
        return answer;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 길이에 따른 연산
public class Main66 {
    public static int solution(int[] num_list) {
        int answer = 0;
        int length = num_list.length;

        if (length >= 11) {
            int sum = 0;
            for (int num : num_list) {
                sum += num;
            }
            answer = sum;
        } else {
            int product = 1;
            for (int num : num_list) {
                product *= num;
            }
            answer = product;
        }
        return answer;
    }

    public static void main(String[] args) {
        // 테스트용 입력 예시
        int[] example1 = {3, 4, 5, 2, 5, 4, 6, 7, 3, 7, 2, 2, 1};
        int[] example2 = {2, 3, 4, 5};

        System.out.println(solution(example1)); // 51
        System.out.println(solution(example2)); // 120
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글