문제
- 2차원 평면 위의 점 N개의 x, y 좌표가 주어질 때, x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬 후 출력하는 문제.
아이디어
- x, y 좌표를 입력받은 1차원 배열을 ArrayList 에 저장하고, 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[0] != n2[0]) {
return n1[0]-n2[0];
}
return n1[1]-n2[1];
});
for(int[] l: list){
sb.append(l[0]).append(' ').append(l[1]).append('\n');
}
System.out.println(sb);
}
}
채점 결과
문제 링크
'백준' 카테고리의 다른 글
[JAVA] 백준 11866번: 요세푸스 문제 0 (0) | 2024.07.16 |
---|---|
[JAVA] 백준 11651번: 좌표 정렬하기 2 (2) | 2024.07.16 |
[JAVA] 백준 10814번: 나이순 정렬 (0) | 2024.07.15 |
[JAVA] 백준 7568번: 덩치 (0) | 2024.07.15 |
[JAVA] 백준 2751번: 수 정렬하기 2 (0) | 2024.07.15 |