알고리즘
3일차 실버5 11651 좌표 정렬하기2
비루블
2023. 1. 28. 14:29
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int Cnt = in.nextInt();
int[][] arr = new int[Cnt][2];
for(int i = 0; i < Cnt; i++){
arr[i][0] = in.nextInt();
arr[i][1] = in.nextInt();
}
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if(o1[1] == o2[1]) {
return o1[0] - o2[0];
}else {
return o1[1] - o2[1];
}
}
});
for(int i = 0; i < Cnt; i++){
System.out.print(arr[i][0]+" "+arr[i][1]);
System.out.println();
}
}
}
15분 소요
compare로 2차원 배열 정렬 제대로 알게 됨.
compare에서 if(o1[0] == o2[0]) 이것은 1열 먼저 정렬해라
if(o1[1] == o2[1]) 이것은 2열 먼저 정렬하라
return에 들어가는 것은 먼저 정렬된 열을 정리후 다음 열을 정렬