Algorithm/[BOJ] - JAVA

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

Codew 2022. 5. 26. 17:52

 

1.점의 개수 N을 입력받는다.

2. x좌표와 y좌표를 저장할 2차원 배열 arr[N][2]를 생성한다.

3. x좌표와 y좌표를 입력받아 배열에 저장한다.

4. x좌표의 오름차순으로 배열을 정렬하는데 x좌표가 같을 때는 y좌표의 오름차순으로 정렬한다.

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());
        }
        
        // arr를 
        Arrays.sort(arr, (o1,o2)->{
            if(o1[0]==o2[0]){
                return Integer.compare(o1[1], o2[1]);
            }
            else{
                return Integer.compare(o1[0], o2[0]);
            }
        });
        for(int i=0;i<N;i++){
            for(int j=0;j<2;j++){
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}