본문 바로가기
알고리즘 문제풀이/백준

[알고리즘/백준] 11650 좌표 정렬하기(자바)

by jeonghaemin 2021. 10. 4.
728x90

문제

https://www.acmicpc.net/problem/11650

풀이 코드

x,y 좌표를 가지는 Pos 클래스를 만들고 Comparable 인터페이스를 구현하여 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬될 수 있도록 한다.

package boj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class boj_11650 {

    static class Pos implements Comparable<Pos>{
        int x;
        int y;

        public Pos(int x, int y) {
            this.x = x;
            this.y = y;
        }

        @Override
        public int compareTo(Pos o) {
            if (this.x == o.x) {
                return this.y - o.y;
            } else {
                return this.x - o.x;
            }
        }
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        Pos[] arr = new Pos[n];

        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());

            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());

            arr[i] = new Pos(x, y);
        }

        Arrays.sort(arr);


        for (Pos pos : arr) {
            sb.append(pos.x).append(" ").append(pos.y).append("\n");
        }

        System.out.println(sb);
    }
}

댓글