더 좋은 문제 풀이가 있거나 궁금하신 점이 있다면 편하게 댓글 남겨주세요!
지난 문제인 [백준/JAVA] 정렬 - 11651번 좌표 정렬하기2 와 같은 방식의 문제입니다. 이전 문제와 다른 점이 있다면 y값을 기준으로 오름차순으로 정렬하고, y값이 같다면 x값을 기준으로 오름차순 정렬한다는 것입니다. 그러므로 x와 y의 입력 값만 바꿔주면 되겠습니다.
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int[][] arr = new int[N][2];
for(int i = 0; i < N; i++) {
// 변경
arr[i][1] = in.nextInt(); //x
arr[i][0] = in.nextInt(); //y
}
Arrays.sort(arr, (e1, e2) -> {
if(e1[0] == e2[0]) {
return e1[1] - e2[1];
} else {
return e1[0] - e2[0];
}
});
for(int i = 0; i < N; i++) {
// 변경
System.out.println(arr[i][1] + " " + arr[i][0]);
}
}
}