코테

[Kotlin] 리스트 정렬

베블렌 2024. 8. 6. 22:04

 

fun main(){
    val br = BufferedReader(InputStreamReader(System.`in`))

    val n = br.readLine().toInt()

    val list = ArrayList<String>()

    for(i in 0 until n){
        list.add(br.readLine())
    }

    val sList = list.distinct().sortedWith(compareBy({ it.length } , {it}))

    for(i in sList.indices){
        println(sList[i])
    }
}

 

list.distinct() = 중복 제거

 

list.sorted() = 정렬 (숫자 : 오름차순 , 문자 : abc,ㄱㄴㄷ 순서)

list.sortedDescending() = 내림차순

 

list.sortedWith() = compareBy({ it.length }, { it }) 2가지를 compareBy 혹은 직접 comparator 제작

val comparator = Comparator<String> { a, b ->
    val lengthCompare = a.length.compareTo(b.length)
    if (lengthCompare == 0) {
        a.compareTo(b)
    } else {
        lengthCompare
    }
}
val sortedList = list.sortedWith(comparator)