728x90
문제
https://www.acmicpc.net/problem/11651
접근 방법
- 이것도 https://eungae-d.tistory.com/128 이 문제와 같은 좌표 정렬하기 문제이다.
- 하지만 이번에는 Comparator가 아닌 클래스의 기본 정렬 방식인 Comparable을 사용해보았다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
static class Node implements Comparable<Node>{
int x;
int y;
public Node(int x, int y){
this.x = x;
this.y = y;
}
@Override
public int compareTo(Node o){
if(this.y == o.y){
return this.x - o.x;
}
return this.y-o.y;
}
}
private static StringBuilder sb;
private static BufferedReader br;
private static StringTokenizer st;
private static int N;
private static PriorityQueue<Node> queue = new PriorityQueue<>();
//입력
public static void input() throws Exception {
br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
N = Integer.parseInt(br.readLine());
for(int i = 0 ; i < N ; i++){
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
queue.add(new Node(x,y));
}
}
//실행
public static void process() {
while (!queue.isEmpty()){
Node n = queue.poll();
sb.append(n.x+" "+n.y).append("\n");
}
System.out.println(sb);
}
public static void main(String[] args) throws Exception {
input();
process();
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[Java] 백준 15829번 : Hashing (0) | 2024.05.10 |
---|---|
[Java] 백준 11866번 : 요세푸스 문제 0 (0) | 2024.05.09 |
[Java] 백준 11650번 : 좌표 정렬하기 (0) | 2024.05.09 |
[Java] 백준 11050번 : 이항 계수 1 (0) | 2024.05.09 |
[Java] 백준 10989번 : 수 정렬하기 3 (0) | 2024.05.09 |