본문 바로가기

[BOJ] - JAVA

[백준] 11651 : 좌표 정렬하기 2 JAVA 풀이

이전 문제에서 x와 y만 바뀐 문제다.

y값을 기준으로 정렬하되 y값이 같다면 w값의 오름차순으로 정렬하면 된다.

 

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;
import java.util.Arrays;
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[][] arr = new int[N][2];
        
        for(int i=0;i<N;i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            arr[i][0] = Integer.parseInt(st.nextToken());
            arr[i][1] = Integer.parseInt(st.nextToken());
        }
        
        Arrays.sort(arr, (o1,o2)->{
        	// y좌표값이 같다면
            if(o1[1]==o2[1]){
                // x값을 비교한다
                return Integer.compare(o1[0], o2[0]);
            }
            // y좌표값이 다르면
            else{
                // y값을 비교해 오름차순으로
                return Integer.compare(o1[1],o2[1]);
            }
        });
        
        for(int i=0;i<N;i++){
            for(int j=0;j<2;j++){
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}