728x90
import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
String[][] arr = new String[N][2];
for(int i = 0; i < N; i++) {
arr[i][0] = in.next();
arr[i][1] = in.next();
}
Arrays.sort(arr, new Comparator<String[]>()
public int compare(String[] s1, String[] s2) {
return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]);
}
});
for(int i = 0; i < N; i++) {
System.out.println(arr[i][0] + " " + arr[i][1]);
}
}
}
앞 문제와 마찬가지로 Arrays.sort의 compare메소드를 오버라이딩 해서 문제를 해결하였다.
이 방법으로 하면 s1>s2인 경우에는 위치를 바꾸지 않으므로 자동으로 가입순으로 정렬이 되서 코드가 간단해진다.
728x90
'백준 단계별' 카테고리의 다른 글
[Java] 백준 1181: 단어 정렬 (1) | 2023.02.16 |
---|---|
[Java] 백준 11650: 좌표 정렬하기 (0) | 2023.02.15 |
[Java] 백준 1427: 소트인사이드 (0) | 2023.02.15 |
[Java] 백준 2108: 통계학 (0) | 2023.02.14 |
[Java] 백준 10989: 수 정렬하기 3 (0) | 2023.02.14 |