나의 풀이
fun main(args: Array<String>) {
val n = readLine()!!.toInt()
val arr = ArrayList<String>()
repeat(n) {
val input = readLine()!!.toString()
arr.add(input)
}
// distinct()는 List 반환
val arr2 = arr.distinct().toTypedArray()
val result= arr2.sortedWith(Comparator { o1, o2 ->
when {
o1.length > o2.length -> { 1 }
o1.length < o2.length -> { -1 }
else -> {
o1.compareTo(o2)
}
}
})
result.forEach {
println(it)
}
}
☞ 중복을 제거한 Array를 준비합니다. 그리고 sortedWith(Comparator{ ... }) 구문을 통해 정렬합니다.
문자열의 length로 먼저 정렬하고, length가 같은 경우 사전순으로 정렬합니다.
728x90
반응형
'자료구조&알고리즘' 카테고리의 다른 글
[백준] 2798번 : 블랙잭 (Kotlin) + 브루트포스 알고리즘 (0) | 2023.01.20 |
---|---|
[백준] 11653번 : 소인수분해 (Kotlin) (1) | 2023.01.19 |
[백준] 11650번 : 좌표 정렬하기 (Kotlin) (0) | 2023.01.07 |
[백준] 2581번 : 소수 (Kotlin) (0) | 2022.12.28 |
[백준] 2839번 : 설탕 배달 (Kotlin) (2) | 2022.12.27 |