원본 : www.acmicpc.net/problem/10814
10814번: 나이순 정렬
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Comparator;
public class Main {
public static class Member {
int age;
int memberNo;
String name;
public Member(int age, int memberNo, String name) {
this.age = age;
this.memberNo = memberNo;
this.name = name;
}
}
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(reader.readLine());
ArrayList<Member> list = new ArrayList<Member>();
for (int i = 0; i < n; i++) {
String str = reader.readLine();
list.add(new Member(Integer.parseInt(str.split(" ")[0]), i, str.split(" ")[1]));
}
list.sort(new Comparator<Member>() {
@Override
public int compare(Member a, Member b) {
if (a.age == b.age) {
return ((Integer)a.memberNo).compareTo((Integer)b.memberNo);
}
else {
return ((Integer)a.age).compareTo((Integer)b.age);
}
}
});
for (int i = 0; i < list.size(); i++) {
Member member = list.get(i);
writer.write(member.age + " " + member.name + "\n");
}
writer.flush();
}
}
댓글 영역