JuSeok

10814번

문제

  • 나이와 이름이 한 세트인 정보가 입력되면 그 정보를 나이순, 나이가 같다면 입력순으로 정렬하는 문제

문제 해결 순서

  1. Person 클래스를 하나 만들어주고 반복문을 돌며 persons배열에 정보 저장
  2. 자바 Arrays.sort의 compre함수를 오버라이드해서 구현
  3. 나이가 같다면 이름순으로 출력하면 되기 때문에 나이만 검사
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);
        }
    }
}

Tags