입력 : 첫째 줄 - 회원 수 (1 ≤ 회원 수 ≤ 100,000)
둘째 줄 - 나이 (공백) 이름[a-zA-Z] (1 ≤ 나이 ≤ 200, 이름 ≤ 100, 가입 순 오름차순)
출력 : 나이 오름차순으로 회원의 이름 출력. 단, 나이가 같으면 먼저 가입한 사람이 먼저 출력
O(NlogN)
팀정렬 알고리즘
성공
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String[][] person = new String[N][2];
for (int i = 0; i < N; i++) {
person[i][0] = String.valueOf(sc.nextInt()); // 나이
person[i][1] = sc.next(); // 이름
}
Arrays.sort(person, new Comparator<String[]>() {
public int compare(String[] a, String[] b) {
return Integer.parseInt(a[0]) - Integer.parseInt(b[0]); // 나이를 정수로 변환하여 비교
}
});
for (int i = 0; i < N; i++) {
System.out.println(person[i][0] + " " + person[i][1]);
}
sc.close();
}
}