loading
본문 바로가기
Coding/Programers

[ Programmers ] 홀수 vs 짝수 ( java ) 66 / 124

by NeuLyeo 2024. 1. 5.

[ Programmers ] 홀수 vs 짝수 ( java ) 66 / 124

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

📚 Table of Contents

     

     

     

     

    문제 설명

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

     

     

    제한사항

    • 5 ≤ num_list의 길이 ≤ 50
    • -9 ≤ num_list의 원소 ≤ 9

     

     

    입출력 예

    num_list result
    [4, 2, 6, 1, 7, 6] 17
    [-1, 2, 5, 6, 3] 8

     

     

    입출력 예 설명

    입출력 예 #1

    • 홀수 번째 원소들의 합은 4 + 6 + 7 = 17, 짝수 번째 원소들의 합은 2 + 1 + 6 = 9 이므로 17을 return합니다.

    입출력 예 #2

    • 홀수 번째 원소들의 합은 -1 + 5 + 3 = 7, 짝수 번째 원소들의 합은 2 + 6 = 8 이므로 8을 return합니다.

     

     

     

     

    문제 풀이

    코드 설명

    코드의 목적:

    이 코드는 주어진 정수 배열에서 홀수 인덱스의 원소들의 합(a)과 짝수 인덱스의 원소들의 합(b)을 계산한 후 둘 중 큰 값을 반환하는 기능을 가진 알고리즘입니다.

     

    코드의 주요 구조:

    1. 클래스 정의: Solution이라는 이름의 클래스를 정의합니다.
    2. 메서드 정의: solution이라는 이름의 메서드를 정의합니다. 이 메서드는 정수 배열(num_list)를 인자로 받아 처리합니다.

     

    코드의 주요 알고리즘:

    1. 배열의 각 원소에 대해 반복문을 실행합니다.
    2. 원소의 인덱스가 홀수인 경우, 해당 원소를 a에 더합니다.
    3. 원소의 인덱스가 짝수인 경우, 해당 원소를 b에 더합니다.
    4. a와 b 중 큰 값을 반환합니다.

     

    코드의 핵심:

    1. for문과 if-else문을 이용하여 원소의 인덱스가 홀수인 경우와 짝수인 경우를 분리하여 처리합니다.
    2. += 연산자를 이용하여 원소를 a나 b에 더합니다.
    3. Math.max를 이용하여 a와 b 중 큰 값을 반환합니다.

     

     

     

    풀이

    class Solution {
        public int solution(int[] num_list) {
            int a = 0, b = 0;
    
            // 배열의 각 원소에 대해 반복문을 실행
            for (int i = 1; i <= num_list.length; i++) {
    
                // 원소의 인덱스가 홀수인 경우, 해당 원소를 a에 더함
                if (i % 2 == 1) {
                    a += num_list[i - 1];
    
                // 원소의 인덱스가 짝수인 경우, 해당 원소를 b에 더함
                } else {
                    b += num_list[i - 1];
                }
            }
    
            // a와 b 중 큰 값을 반환
            return Math.max(a, b);
        }
    }