풀이
저는 2차원 배열로 풀었는데, 구글링을 해보니 class로 지정해서 풀기도 하고 그러더라구요..! 오랜만에 자바로 풀다보니 시간이 좀 걸려서 그건 나중에 풀어보기로…!
문자열의 2차원 배열이기 때문에, 바로 Arrays.sort()를 쓸 수 없어서 Comparator 인터페이스의 compare 메서드를 오버라이드하여 나이를 기준으로 재정의하였습니다! 가입한 순서는 나이를 기준으로만 배열이 재정렬되기 때문에, 그대로 놔두시면 가입한 순서대로 출력됩니다!
소스 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.*;
import java.util.*;
public class 나이순정렬 {
static String[][] array;
static int n;
public static void main(String arg[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
array = new String[n][2];
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
array[i][0] = st.nextToken();
array[i][1] = st.nextToken();
}
Arrays.sort(array, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
}
});
for (int i = 0; i < n; i ++) {
System.out.println(array[i][0] + " " + array[i][1]);
}
return;
}
}
태클 감사합니다.
조언 환영입니다.