백준

백준 10814 나이순 정렬(Java)

Park DJ 2023. 1. 20. 00:27

https://www.acmicpc.net/problem/10814

 

10814번: 나이순 정렬

온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 이중배열을 통해 나이와 이름을 입력받은후 회원들을 나이가 증가하는 순으로,나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬해야합니다. 따라서 이문제도 역시 Arrays.sort()의 Comparator 재정의를 한 후 Comparator에 있는 메서드인 compare를 오버 라이딩하면됩니다. 

 


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int n = Integer.parseInt(sc.nextLine());
    String[][] arr = new String[n][2];
    
    for(int i = 0; i < n; i++) {
      arr[i][0] = sc.next();
      arr[i][1] = sc.next();
    }

    Arrays.sort(arr, new Comparator<String[]>() {
      public int compare(String[] s1, String[] s2) {
        return Integer.parseInt(s1[0]) - Integer.parseInt(s2[0]);
      }
    });
    
    for(int i = 0; i < n; i++) {
      System.out.println(arr[i][0] + " " + arr[i][1]);
    }

  }
}