코드: https://github.com/kgh128/Problem-Solving/blob/main/src/Baekjoon/p11651.java
이번에는 Pair 클래스를 만들지 않고, 2차원 배열에 위와 같이 좌표를 정리하였다. 따라서 한 행이 하나의 좌표 쌍이다.
int N = Integer.parseInt(br.readLine());
int[][] pairs = new int[N][2];
for (int i = 0; i < N; i++) {
String[] inputs = br.readLine().split(" ");
pairs[i][0] = Integer.parseInt(inputs[0]);
pairs[i][1] = Integer.parseInt(inputs[1]);
}
2차원 배열 pairs를 Arrays.sort()와 람다 함수를 이용하여 정렬한다. 2차원 배열도 정렬 기준을 구현한 Comparator를 인자로 주면 바로 Arrays.sort()를 통해 정렬할 수 있었다. 한 행이 하나의 쌍으로 이동할 것인지가 관건이었는데 Comparator만 구현하면 가능했다.
Arrays.sort(pairs, (a ,b) -> {
if (a[1] == b[1]) return a[0] - b[0];
else return a[1] - b[1];
});
정렬된 배열을 버퍼에 넣어 출력했다.
for (int i = 0; i < N; i++) {
bw.append(pairs[i][0]).append(' ').append(pairs[i][1]).append('\n');
}
System.out.print(bw);