관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 홀수 vs 짝수 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 홀수 vs 짝수 (Kotlin)

참깨빵위에참깨빵_ 2024. 5. 16. 01:52
728x90
반응형
정수 리스트 num_list가 주어진다. 가장 첫 번째 원소를 1번 원소라고 할 때 홀수 번째 원소들의 합과 원소들의 합 중 큰 값을 리턴하는 함수를 완성하라. 두 값이 같으면 그 값을 리턴한다

 

 

매개변수로 받은 num_list 안의 정수들의 홀짝을 구분한 후 종류별로 더해서 갖고 있을 변수를 만들고, num_list 안의 정수를 홀짝으로 나눠서 더한 다음 리턴하도록 짜면 된다. forEachIndexed와 if-else if를 활용하면 간단하게 풀 수 있다.

 

class Solution {
    fun solution(numList: IntArray): Int {
        var odd = 0
        var even = 0
        numList.forEachIndexed { index, i ->
            if (index % 2 == 0) {
                odd += i
            } else {
                even += i
            }
        }

        return if (odd > even) {
            odd
        } else if (odd < even) {
            even
        } else {
            odd
        }
    }
}

 

또는 max()를 활용할 수도 있다. 이 경우 filterIndexed 함수를 활용할 수도 있다.

내 컴퓨터 기준으론 첫 번째 풀이가 가장 빠르게 작동했다.

 

import kotlin.math.*

class Solution {
    fun solution(num_list: IntArray): Int {
        var answer: Int = 0
        return max(
            num_list.filterIndexed { i, v -> i % 2 == 0}.sum(),
            num_list.filterIndexed { i, v -> i % 2 == 1}.sum()
        )
    }
}

 

반응형
Comments