PS/BOJ

백준 11650 좌표 정렬하기

_룰루 2021. 4. 7. 18:47

 

 

11650번: 좌표 정렬하기

첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.

www.acmicpc.net

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

public class Main {

	public static void main(String[] args) {
		Scanner sc= new Scanner(System.in);
		
		int num = sc.nextInt(); //좌표 몇개 받을 건지 확인
		int[][] arr = new int [num][2]; //받은 좌표 저장할 배열. xy 둘뿐이라서 열은 2.
		
		for(int i=0; i<num; i++) {
			for(int k=0; k<2; k++) {
				arr[i][k] = sc.nextInt();
			}
		}
		
		Arrays.sort(arr, new Comparator<int []>(){

			@Override
			public int compare(int[] o1, int[]o2) {
				if(o1[0]==o2[0]) {
					return o1[1]-o2[1]; //1열의 값이 같을 경우 2열의 값 비교. 오름차순으로 정렬
				}else{
					return o1[0]-o2[0]; //1열부터 값이 차이가 있는 경우 1열 기준으로 정렬
				}
			}
		});
		
		for(int i=0; i<num; i++) {
			for(int k=0; k<2; k++) {
				System.out.print(arr[i][k] + " ");
			}
			System.out.println();
		}
		
	}
}
반응형