Java
[백준 11650] 좌표 정렬하기 (JAVA)
iheeeee6-6
2023. 2. 19. 22:42
728x90
https://www.acmicpc.net/problem/11650
11650번: 좌표 정렬하기
첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다.
www.acmicpc.net
객체를 생성하여 x.y값을 비교 정렬하면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;
public class test11650 {
static class dot {
int x;
int y;
dot(int x, int y) {
this.x = x;
this.y = y;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
dot[] arr = new dot[n];
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
arr[i] = new dot(a, b);
}
Arrays.sort(arr, new Comparator<dot>() {
public int compare(dot d1, dot d2) {
if(d1.x==d2.x) {
return d1.y-d2.y;
}
return d1.x - d2.x;
}
});
for (int i = 0; i < n; i++)
System.out.println(arr[i].x+" "+arr[i].y);
}
}