본문 바로가기

알고리즘

[백준][KOTLIN] 1181 단어 정렬

728x90

풀이

  1. 조건에서 중복을 허용하지 않는 것을 참고하여 Set 을 이용한다.
  2. 입력된 문자열을 길이 기준으로 오름 차순 정렬 한다.
  3. 문자열의 길이가 같을 때에는 알파벳 순으로 정렬 한다.
  4. 2가지 조건을 만족해야 하므로 Kotlin 에서 제공하는 sortedWith api 를 이용하여 정렬 한다.

코드

import java.util.*

fun main(ars: Array<String>) {
    val sc = Scanner(System.`in`)
    val n = sc.nextInt()
    val list = mutableSetOf<String>()

    repeat(n) {
        list.add(sc.next())
    }

    val result = list.sortedWith { a, b ->
        when {
            a.length > b.length -> 1
            a.length < b.length -> -1
            else -> a.compareTo(b)
        }
    }

    result.forEach { println(it) }
}
728x90