단계별로 풀어보기 > 정렬 > 나이순 정렬
https://www.acmicpc.net/problem/10814
N명의 사람 나이, 이름이 주어질 때,
나이 순으로 정렬하고, 나이가 같으면 먼저 가입한 사람의 순서로 정렬하라.

사람의 정보를 Person 클래스로 저장하여 list에 저장한다.
저장한 list를 Collections.sort를 이용하여 Person.age 순으로 정렬한다.
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
public class 나이순_정렬 {
public static class Person{
int age;
String name;
public Person(int age, String name){
this.age = age;
this.name = name;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
List<Person> list = new ArrayList<>();
for(int i = 0; i<N; i++){
st = new StringTokenizer(br.readLine());
int age = Integer.parseInt(st.nextToken());
String name = st.nextToken();
list.add(new Person(age, name));
}
Collections.sort(list,(p1,p2) ->{
return p1.age - p2.age;
});
StringBuilder sb = new StringBuilder();
for(int j = 0; j<N; j++){
sb.append(list.get(j).age +" "+ list.get(j).name).append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
JAVA에서 지원하는 정렬 중, int 배열의 정렬은 불안정한 정렬이다.
이외의 정렬은 안정 정렬이다.
