https://www.acmicpc.net/problem/10814
사람들의 나이와 이름, 가입 순서 정보를 갖는 Member 클래스를 생성했다.
Member의 나이 순으로 정렬하고 나이가 같을 경우 먼저 가입한 사람 순으로 정렬한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(br.readLine());
Member[] members = new Member[n];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
members[i] = new Member(Integer.parseInt(st.nextToken()), st.nextToken(), i);
}
Arrays.sort(members, new Comparator<Member>() {
@Override
public int compare(Member o1, Member o2) {
if(o1.age == o2.age) {
return o1.order - o2.order;
}
return o1.age - o2.age;
}
});
StringBuilder sb = new StringBuilder();
for(Member member : members) {
sb.append(member.age + " " + member.name + "\n");
}
System.out.println(sb.toString());
}
}
class Member {
int age;
String name;
int order;
public Member(int age, String name, int order) {
this.age = age;
this.name = name;
this.order = order;
}
}