반응형
https://www.acmicpc.net/problem/10814
문제는 나이와 이름을 받는데 나이순으로 정렬을 하고
나이가 같을경우에는 입력 받은순서로 정리를 한다.
즉 우리는 굳이 뒤를 정렬해줄필요없이 앞쪽만 정렬을 진행해주면 되는 문제였다.
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은 많이 쓰이니 기억을 해두면 좋을듯 싶다.
반응형
'Android & Kotlin > Kotlin Algorithm' 카테고리의 다른 글
[코틀린] 백준 1010번 다리놓기 (0) | 2022.11.12 |
---|---|
[dfs] 백준 2606 코틀린 : 바이러스 (0) | 2022.11.12 |
[백준 코틀린] 1065 : 한수 (0) | 2022.11.11 |
[백준 코틀린] 2775번 : 부녀회장이 될테야 (0) | 2022.11.11 |
[백준 코틀린] 2750번 : 수 정렬하기 (0) | 2022.11.11 |
댓글