본문 바로가기

Algorithm/Baekjoon

[백준_JAVA_알고리즘] 11651 좌표 정렬하기 2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int N = Integer.parseInt(bufferedReader.readLine());
		int[][] arr = new int[N][2];
		
		for(int i = 0; i < N; i++) {
			StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
			arr[i][0] = Integer.parseInt(stringTokenizer.nextToken());
			arr[i][1] = Integer.parseInt(stringTokenizer.nextToken());
		}
		// Arrays.sort()
		Arrays.sort(arr, (a1, a2) -> {
			if(a1[1] == a2[1]) // y 값이 같다면
				return a1[0] - a2[0]; // 첫 번째 인덱스 값에 대해 오름차순으로 정렬
			else
				return a1[1] - a2[1]; // 두 번째 인덱스 값에 대해 오름차순으로 정렬
		});
		
		for(int i = 0; i < N; i++)
			bufferedWriter.write(arr[i][0]+" "+arr[i][1]+"\n");
		
		bufferedWriter.flush();
		bufferedReader.close();
		bufferedWriter.close();
	}
}

이전에 풀었던 코드에서 람다 함수 부분만 변경했다