문제
- 2차원 평면 위의 점 N개가 주어질 때, y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬 후 출력하는 문제.
아이디어
- 1차원 배열에 x, y 좌표를 저장하고, comparator 재구현을 통해 정렬한다.
풀이
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
List<int[]> list = new ArrayList<>();
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
list.add(new int[]{Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())});
}
// comparator 재구현
list.sort((n1, n2)->{
if(n1[1] != n2[1]) {
return n1[1]-n2[1];
}
return n1[0]-n2[0];
});
for(int[] l: list){
sb.append(l[0]).append(' ').append(l[1]).append('\n');
}
System.out.println(sb);
}
}
채점 결과
기타
- [JAVA] 백준 11650번: 좌표 정렬하기 (tistory.com) 와 기준점인 x, y좌표 만 변경된 문제였다.
문제 링크
'백준' 카테고리의 다른 글
[JAVA] 백준 1018번: 체스판 다시 칠하기 (1) | 2024.07.17 |
---|---|
[JAVA] 백준 11866번: 요세푸스 문제 0 (0) | 2024.07.16 |
[JAVA] 백준 11650번: 좌표 정렬하기 (1) | 2024.07.16 |
[JAVA] 백준 10814번: 나이순 정렬 (0) | 2024.07.15 |
[JAVA] 백준 7568번: 덩치 (0) | 2024.07.15 |