본문 바로가기

백준 문제풀기/JAVA

[백준 11650 JAVA 자바] 좌표 정렬하기

x좌표가 증가하는 순으로

x좌표가 갇아면

y좌표가 증가하는 순서로

정렬하여 출력합시다

 

코드입니다

import java.util.Scanner;
import java.util.Arrays;
 
public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int N = scan.nextInt();
		
		int[][] arr = new int[N][2];
		
		for(int i=0; i<N; i++) {
			arr[i][0] = scan.nextInt();
			arr[i][1] = scan.nextInt();
		}
		
		Arrays.sort(arr, (e1, e2) -> {
			if(e1[0] == e2[0]) {
				return e1[1] - e2[1];
			} else{
				return e1[0] - e2[0];
			}
		});
		
		StringBuilder sb = new StringBuilder();
		for(int i=0; i<N; i++) {
			sb.append(arr[i][0] + " " + arr[i][1]).append('\n');
		}
		System.out.println(sb);
	}
}

항상 사용하는 Arrays.sort()의 변형을 이용했습니다

e1[0] == e2[0], x값이 같다면

return e1[1] - e2[1], y값을 비교하여 순서를 정합시다

라는 의미입니다