프로그래머스 홀수 vs 짝수

KIMYEONGJUN·2026년 6월 21일
post-thumbnail

문제

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

정수 리스트 num_list가 주어집니다.
가장 첫 번째 원소를 1번 원소라고 할 때, 홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요.
두 값이 같을 경우 그 값을 return합니다.

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

solution 메서드는 정수 배열 num_list를 입력받는다.
변수 oddSum은 홀수 번째 원소들의 합을 저장하며, evenSum은 짝수 번째 원소들의 합을 저장한다.
for 반복문은 배열의 모든 원소에 대해 인덱스 i를 0부터 끝까지 순회한다.
인덱스가 짝수일 때(i % 2 == 0)는 배열의 1, 3, 5번째 원소에 해당하므로 oddSum에 더한다.
인덱스가 홀수일 때는 배열의 2, 4, 6번째 원소로 보아 evenSum에 더한다.
반복문 종료 후 oddSum과 evenSum을 비교하여 크거나 같은 값인 oddSum을 우선 반환하고 그렇지 않으면 evenSum을 반환한다.
main 메서드에서는 두 개의 테스트 배열을 만들고, 각각 solution 메서드를 호출해 결과를 출력한다.
테스트 결과는 첫 번째 배열에서 홀수 위치 원소들의 합인 17, 두 번째 배열에서는 짝수 위치 원소들의 합인 8이 출력되는 구조이다.

코드로 구현

class Solution {
    public int solution(int[] num_list) {
        int oddSum = 0;  
        int evenSum = 0;

        for (int i = 0; i < num_list.length; i++) {
            if (i % 2 == 0) {
                oddSum += num_list[i];
            } else {
                evenSum += num_list[i];
            }
        }

        return oddSum >= evenSum ? oddSum : evenSum;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 홀수 vs 짝수
public class Main58 {
    public static int solution(int[] num_list) {
        int oddSum = 0;
        int evenSum = 0;

        for (int i = 0; i < num_list.length; i++) {
            if (i % 2 == 0) {
                oddSum += num_list[i];
            } else {
                evenSum += num_list[i];
            }
        }

        return oddSum >= evenSum ? oddSum : evenSum;
    }

    public static void main(String[] args) {
        int[] test1 = {4, 2, 6, 1, 7, 6};
        int[] test2 = {-1, 2, 5, 6, 3};

        System.out.println(solution(test1)); // 17 출력 예상
        System.out.println(solution(test2)); // 8 출력 예상
    }
}

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

마무리

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

profile
Junior backend developer

0개의 댓글