[백준] 주사위 네개 (2484)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 4개의 눈이 빈칸을 사이에 두고 각각 주어진다.
» 출력
첫째 줄에 가장 많은 상금을 받은 사람의 상금을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 3 3 3 3 3 3 6 3 2 2 6 6 6 2 1 5 |
65000 |
문제 풀이1
import kotlin.math.max
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
var max = 0
repeat(readLine().toInt()) {
val dice = readLine().split(" ").map { it.toInt() }.groupingBy { it }.eachCount()
val result = when (dice.size) {
1 -> {
50_000 + dice.keys.toList()[0] * 5_000
}
2 -> {
val tmp = dice.toList()
when {
tmp[0].second < tmp[1].second -> {
10_000 + tmp[1].first * 1_000
}
tmp[0].second > tmp[1].second -> {
10_000 + tmp[0].first * 1_000
}
else -> {
2_000 + tmp[0].first * 500 + tmp[1].first * 500
}
}
}
3 -> {
1_000 + dice.filter { it.value == 2 }.toList()[0].first * 100
}
else -> {
dice.maxByOrNull { it.key }!!.key * 100
}
}
max = max(max, result)
}
println(max)
}