본문 바로가기
스터디(beakjoon)

Kotlin] 백준 1758번 풀이

by 김마리님 2024. 9. 9.

https://www.acmicpc.net/problem/1758

 

더보기

그냥.. 그냥 개간단함.

 

내림차순 정렬해서 인덱스 값 빼서 더하면 됨. 왜냐면, 강호가 가져갈 돈은

가장 큰 값 - 가장 작은 값 을 서서히 더해가는게 가장 높은 값에 근사하기 때문임(그리드 알고리즘)

 

즉, 이를 식으로 풀면

 

fun main() {
    question1758()
}

fun question1758() {
    val case = readln().toInt()
    val tip = mutableListOf<Long>()
    for(i in 1 .. case) {
        tip.add(readln().toLong())
    }

    var upperCase = 0L
    tip.sortedDescending().forEachIndexed { index, i ->
        (i - index).let {
            if(it > 0) upperCase += it
        }
    }

    println("$upperCase")
}

 

반응형

'스터디(beakjoon)' 카테고리의 다른 글

Kotlin] 백준 1676번 풀이  (0) 2024.09.09
Kotlin] 백준 9536번 풀이  (0) 2024.09.01
Kotlin] 백준 2238번 풀이  (1) 2024.09.01
Kotlin] 백준 1158번 풀이  (0) 2024.09.01
Kotlin] 백준 2606 풀이  (0) 2024.05.23