JuSeok

11650번

문제

  • 2차원 평면 위의 점 N개가 주어질 때 좌표를 x가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 문제
문제 해결 순서
  1. N만큼 반복하며 좌표를 입력받음
  2. Arrays.sort()를 이용해 배열을 정렬하는데, 내장함수 compare를 알맞게 오버라이딩 해줌
  3. x좌표를 먼저 정렬하는데 이때, x좌표가 같으면 y좌표를 비교해서 정렬함
import java.util.*;
class Main {
    public static void main(String[] args) {
    	Scanner in = new Scanner(System.in);		
	int N = in.nextInt();
	int[][] arr = new int[N][2];

	for(int i = 0; i < N; i++) {
	    arr[i][0] = in.nextInt();
	    arr[i][1] = in.nextInt();
	}

	Arrays.sort(arr, (e1, e2) -> {
	    // 두번째 값이 크면 음수 리턴
	    // 같으면 0 리턴
	    // 첫번째 값이 크면 양수 리턴
	    if(e1[0] == e2[0]) {
		return e1[1] - e2[1];
	    } 
	    else {
		return e1[0] - e2[0];
	    }
	});

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

Tags