10814번
문제
- 나이와 이름이 한 세트인 정보가 입력되면 그 정보를 나이순, 나이가 같다면 입력순으로 정렬하는 문제
문제 해결 순서
- Person 클래스를 하나 만들어주고 반복문을 돌며 persons배열에 정보 저장
- 자바 Arrays.sort의 compre함수를 오버라이드해서 구현
- 나이가 같다면 이름순으로 출력하면 되기 때문에 나이만 검사
import java.util.*;
public class Main {
static class Person{
int age;
String name;
Person(int age, String name){
this.age = age;
this.name = name;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
Person persons[] = new Person[n];
for (int i = 0; i < n; i++){
int age = scan.nextInt();
String name = scan.nextLine();
persons[i] = new Person(age, name);
}
Arrays.sort(persons, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.age - o2.age;
}
});
for (int i = 0; i < n; i++){
System.out.println(persons[i].age + persons[i].name);
}
}
}