나이순 정렬

곽지욱·2024년 2월 2일

BOJ

목록 보기
41/69

10814번 : 나이순 정렬

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

public class Sort_4 {
    public static void main(String[] args) {


        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();

        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[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                return Integer.parseInt(o1[0]) - Integer.parseInt(o2[0]);
            }
        });

        for(int i=0; i<N; i++){
            System.out.println(arr[i][0] + " " + arr[i][1]);
        }




    }
}

  • N 값이 2일때
  1. 두 객체를 비교할 때 사용되는 인터페이스인 'Comparator' 를 구현하여 사용자 정의 정렬 방식을 이용함

public interface Comparator<T> {
    int compare(T o1, T o2);
    // 다른 유용한 메서드들...
}
  • 나이를 기준으로 정렬하기 때문에

  • o1이 o2보다 작으면 음수를 반환 (위치 바뀜 -> 정렬)

  • o1이 o2와 같으면 0을 반환 (순서 변경 없음)

  • o1이 o2보다 크면 양수를 반환 (순서 유지)

0개의 댓글