본문 바로가기

알고리즘

[백준][KOTLIN] 10814 나이순 정렬

728x90

 

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net

풀이

  1. 나이와 이름을 함께 저장할 수 있는 Data Class 를 선언한다.
  2. List에 입력된 나이와 이름을 저장한다.
  3. List - sortedWith api 를 이용하여 나이를 기준으로 오름차순 정렬한다.

코드

import java.io.*
import java.util.*

fun main(ars: Array<String>) {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val n = br.readLine().toInt()
    val members = mutableListOf<Member>()

    repeat(n) {
        val st = StringTokenizer(br.readLine())
        members.add(Member(st.nextToken().toInt(), st.nextToken()))
    }

    val result = members.sortedWith { a, b ->
        when {
            a.age > b.age -> 1
            a.age < b.age -> -1
            else -> 0
        }
    }

    for (m in result) {
        println("${m.age} ${m.name}")
    }
}

data class Member(val age: Int, val name: String)
728x90