본문 바로가기
코딩테스트

[프로그래머스] 홀수 vs 짝수

by liz_devel 2025. 1. 17.

🗒 문제

 


📝 나의 문제풀이

class Solution {
    fun solution(num_list: IntArray): Int {

        val odd = num_list.filterIndexed{i,_ -> i % 2 == 0}.sum()
        val even = num_list.filterIndexed{i,_ ->i % 2 != 0}.sum()
        return if(odd > even) odd else even

    }
}

📝 다른 사람의 문제 풀이

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()
        )
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • filterIndexed 사용법
    • 설명: 인덱스와 값을 기준으로 필터링.
    • 반환 타입: List<T> (필터링된 결과의 리스트)
// 사용법
collection.filterIndexed { index, value -> 조건 }
// 예
val evenIndex = listOf(1, 2, 3, 4).filterIndexed { i, _ -> i % 2 == 0 }
println(evenIndex) // [1, 3] (0, 2 인덱스 값)

 

  • sum() 함수
    • 설명: 컬렉션의 모든 원소의 합을 계산.
    • 반환 타입: Int 또는 Double (컬렉션의 타입에 따라 다름)
val sum = listOf(1, 2, 3).sum()
println(sum) // 6

 

  • max 함수
    • 설명: 두 값 중 더 큰 값을 반환.
    • 반환 타입: 비교한 값의 타입 (Int, Double, 등)
val maxValue = max(5, 10)
println(maxValue) // 10
반응형