백준 단계별

[Java] 백준 10814: 나이순 정렬

pullwall 2023. 2. 16. 13:58
728x90
import java.util.Scanner;
import java.util.Arrays;
import java.util.Comparator;
 
public class Main {
	public static void main(String[] args) {		
 
		Scanner in = new Scanner(System.in);
		
		int N = in.nextInt();
		String[][] arr = new String[N][2];
		
 
		for(int i = 0; i < N; i++) {
			arr[i][0] = in.next();
			arr[i][1] = in.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]);
		}
		
	}
 
}

 

앞 문제와 마찬가지로 Arrays.sort의 compare메소드를 오버라이딩 해서 문제를 해결하였다.

 

이 방법으로 하면 s1>s2인 경우에는 위치를 바꾸지 않으므로 자동으로 가입순으로 정렬이 되서 코드가 간단해진다.

728x90