나의 풀이
fun main(args: Array<String>) {
val n = readLine()!!.toInt()
val arr = ArrayList<Pair<Int,Int>>()
repeat(n) {
val input = readLine()!!.split(" ")
arr.add(Pair(input[0].toInt(), input[1].toInt()))
}
arr.sortWith(compareBy({it.first}, {it.second}))
repeat(n) {
println("${arr[it].first} ${arr[it].second}")
}
}
저는 두 개의 변수를 묶어서 비교하기 위해 Pair를 이용했습니다.
☞ Pair 객체에 입력을 저장하고 ArrayList에 추가 → 오름차순 정렬하되 compareBy() 구문으로 arr의 첫 번째 변수로 비교하여 정렬한 후 두 번째 변수로 정렬
Pair는 데이터 클래스로 이루어진 객체로 자료형에 관계없이 두 개의 변수를 묶어서 관리할 때 유용합니다.
val pair1 = Pair("Hello", "Hi") // <String, String>
val pair2 = Pair("Hello", 12345) // <String, Int>
println("${pair1.first} ${pair2.second}") // Hello 12345
val triple = Triple("Hello", "Hi", "12345")
println("${triple.first} ${triple.second} ${triple.third}") // Hello Hi 12345
sortWith()와 compareBy()의 사용법은 다음과 같습니다.
array.sortWith(compareBy({ // Collection 자료구조의 array
{ 조건 A }, // 조건 A에 대한 정렬을 수행한 후
{ 조건 B } // 조건 A에 만족하면서 조건 B에 대한 정렬
}))
728x90
반응형
'자료구조&알고리즘' 카테고리의 다른 글
[백준] 2798번 : 블랙잭 (Kotlin) + 브루트포스 알고리즘 (0) | 2023.01.20 |
---|---|
[백준] 11653번 : 소인수분해 (Kotlin) (1) | 2023.01.19 |
[백준] 1181번 : 단어 정렬 (Kotlin) (0) | 2023.01.09 |
[백준] 2581번 : 소수 (Kotlin) (0) | 2022.12.28 |
[백준] 2839번 : 설탕 배달 (Kotlin) (2) | 2022.12.27 |