좌표 정렬하기 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 256 MB | 48087 | 23314 | 17694 | 48.559% |
문제
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
출력
첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다.
예제 입력 1 복사
5 3 4 1 1 1 -1 2 2 3 3
예제 출력 1 복사
1 -1 1 1 2 2 3 3 3 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
fun main(){
val num = readLine()!!.toInt()
val list = ArrayList<Pair<Int,Int>>()
for(i in 0 until num){
val line = readLine()!!.split(" ").map{it.toInt()}
list.add(Pair(line[0],line[1]))
}
//첫번째 소팅방법
list.sortWith(Comparator{d1,d2 -> if(d1.first == d2.first) {
d1.second - d2.second
} else {
d1.first - d2.first
} })
println(list)
// 두번째 소팅 방법
list.sortBy { it.second }
list.sortBy {it.first}
for(i in 0 until num){
println("${list[i].first} ${list[i].second}")
}
}
|
cs |
'알고리즘 공부 > 미분류' 카테고리의 다른 글
좌표정렬하기 11651번 with Kotlin (0) | 2021.07.10 |
---|---|
이진탐색 (0) | 2021.07.10 |
백준 10814번 with Kotlin #sortWith #정렬 (0) | 2021.07.09 |
백준 1436번 with Kotlin #문자열에 있는 내용 부분적 체크 (0) | 2021.07.09 |
백준 10250번 with Kotlin (0) | 2021.07.09 |