몰?.루();
백준 10825번 코틀린 (sortedWith, compareBy) 본문
여러가지 정렬 기준에 대해 정렬하는 문제입니다.
fun main() {
val n = readLine()!!.toInt()
val inputs = ArrayList<Info>(n)
repeat(n) {
val line = readLine()!!.split(" ")
inputs.add(Info(line[0], line[1].toInt(), line[2].toInt(), line[3].toInt()))
}
// inputs.sortedBy { it.name }.sortedByDescending { it.math }.sortedBy { it.english }.sortedByDescending { it.korean }.forEach { println(it.name) }
inputs.sortedWith(compareBy({ -it.korean }, { it.english }, { -it.math }, { it.name })).forEach { println(it.name) }
}
data class Info(val name: String, val korean: Int, val english: Int, val math: Int)
주석처리 되어있는 게 약간 더 비효율적이지만 쉽고 (수학 성적으로 정렬된 걸 영어 순서로 다시 정렬시키고 그걸 다시 국어 순으로 정렬시키고 그걸 다시 이름순으로 정렬시킴)
그 아래에 있는 게 정석적이고 좀 더 효율적이지만 약간 어려운 코드입니다.
람다식으로 가득가득하네요.
'프로그래밍 > 안드로이드, 코틀린' 카테고리의 다른 글
코틀린 오류 해결법 Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.5.1. (0) | 2022.09.02 |
---|---|
백준 14502 코틀린 (0) | 2022.06.23 |
백준 9019번 코틀린 (0) | 2022.03.24 |
코틀린 이진탐색(이분탐색, binary search) (1) | 2022.03.23 |
코틀린 중복 없이 난수(랜덤) 생성 코드 (0) | 2022.03.21 |
Comments