풀이방법
사용된 것:
정렬
Comparator Overriding
2022.05.04
Comparator를 오버라이드하여 정렬하면 된다.
▼Comparator Overriding하는 법
코드
Java(2022.05.04)
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 Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//데이터 읽어오기
int n = Integer.parseInt(br.readLine());
Point[] arr = new Point[n];
for(int i = 0; i<n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i] = new Point(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(arr, new Comparator<Point> () {
@Override
public int compare(Point p1, Point p2) {
// TODO Auto-generated method stub
int x1 = p1.x;
int x2 = p2.x;
int y1 = p1.y;
int y2 = p2.y;
//y좌표를 먼저 비교(오름차순)
if(y1>y2) return 1;
else if(y1 == y2) {
//y좌표가 같을 경우 x좌표 비교(오름차순)
if(x1>x2) return 1;
else return -1;
}
else return -1;
}
});
//정답 출력
StringBuilder sb = new StringBuilder();
for(Point p : arr) sb.append(p.x + " " + p.y + System.lineSeparator());
System.out.print(sb);
}
}
class Point {
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
#2160 : 그림 비교 (0) | 2022.05.10 |
---|---|
#1037 : 약수 (0) | 2022.05.07 |
#14928 : 큰 수 (BIG) (0) | 2022.05.03 |
#1436 : 영화감독 숌 (0) | 2022.05.03 |
#7568 : 덩치 (0) | 2022.05.03 |