본문 바로가기
Android & Kotlin/Kotlin Algorithm

[백준 코틀린] 10814 : 나이순정렬

by 말린밴댕이_공부 2022. 11. 11.
반응형

https://www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

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

www.acmicpc.net

 

문제는 나이와 이름을 받는데 나이순으로 정렬을 하고

나이가 같을경우에는 입력 받은순서로 정리를 한다.

 

즉 우리는 굳이 뒤를 정렬해줄필요없이 앞쪽만 정렬을 진행해주면 되는 문제였다.

 

import java.util.*
import kotlin.collections.ArrayList

fun main(){
    val input = Scanner(System.`in`)
    var n : Int= 0
    var list = ArrayList<Pair<Int, String>>() // Pair를 이용

    n = readLine()!!.toInt()
    for( i in 0 until n ){
        val line = readLine()!!.split(" ")  // 스페이스를 기준으로 스플릿
        list.add(Pair(line[0].toInt(), line[1])) // 문자열이니 두개 쪼개서 pair로 짝으로 저장
    }
    list.sortBy { it.first } //첫번째 나이 순서로 정렬을 한다.

    for( i in 0 until n){
        println("${list[i].first} ${list[i].second}")
    }

}

우리는 여기서 알아야할 개념은

Pair에 대해서 알아야하고  Pair는객체를 생성하고 두개의 객체를 넣을 수 있습니다.

ArrayList<Pair<Int, String>>() 처럼 선언을하고 우리는 접근을 first, second를 할 수 있다.

 

그리고 split은 많이 쓰이니 기억을 해두면 좋을듯 싶다.

반응형

댓글