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 |