백준11650 - 좌표정렬
본문 바로가기

알고리즘/백준

백준11650 - 좌표정렬

728x90
반응형

안녕하세요 놀이방사장입니다.

 

이번 포스팅은 백준 11650 "좌표정렬"입니다.

 

 

 

11650번: 좌표 정렬하기

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

www.acmicpc.net

 

예전에 풀었던 단어 정렬이랑 비슷한 문제입니다.

 

이번에는 첫번째 숫자를 비교하고 같을시 두번째 숫자를 비교해주면 되는 문제입니다.

 

코드는

package me.joyeonggyu;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;

public class Main{

    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw  = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        int[][] corDi = new int[n][2];
        for(int i=0; i<n; i++){
            String[] arr = br.readLine().split(" ");
            corDi[i][0] = Integer.parseInt(arr[0]);
            corDi[i][1] = Integer.parseInt(arr[1]);
        }
        Arrays.sort(corDi , new Comparator<int[]>(){
            public int compare(int[] n1, int[] n2){
                if(n1[0] == n2[0]){
                    return n1[1] - n2[1];
                }else{
                    return n1[0] - n2[0];
                }
            }
        });

        for(int i=0; i< corDi.length; i++){
            bw.write(corDi[i][0] + " " + corDi[i][1] + "\n");
        }
        bw.flush();
        bw.close();
    }
}

이렇게 짰습니다.

 

Comparator를 사용해서 정렬해주었습니다.!

반응형

'알고리즘 > 백준' 카테고리의 다른 글

백준 1308 D-day 자바 풀이  (0) 2023.12.03
백준[1251] 단어나누기 - 자바(JAVA)  (1) 2023.12.02
[1436]백준 - 영화감독 숌 - JAVA  (0) 2023.11.28
[백준7568]- 덩치- JAVA  (0) 2023.11.25
[백준1065]- 한수- JAVA  (1) 2023.11.24