main
[백준-11651번/Java] 좌표 정렬하기 2 본문
* 백준 11650번 문제와 같다. (정렬 기준이 x좌표 우선인지/ y좌표 우선인지 차이)
* y좌표를 우선적으로 정렬 기준이 되도록 compareTo() method 를 수정했다.
import java.io.*;
import java.util.*;
public class Main {
private static class Point implements Comparable {
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public Integer getX() {
return this.x;
}
public Integer getY() {
return this.y;
}
@Override
public boolean equals(Object o) {
Point p = (Point) o;
return p.getX() == getX() && p.getY() == getY();
}
@Override
public int compareTo(Object o) {
Point p = (Point) o;
return Comparator.comparing(Point::getY).thenComparing(Point::getX).compare(this, p);
}
@Override
public String toString() {
// TODO Auto-generated method stub
return getX() + " " + getY();
}
}
@SuppressWarnings("unchecked")
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
ArrayList<Point> pointList = new ArrayList<Point>();
for (int i = 0; i < N; i++) {
StringTokenizer stk = new StringTokenizer(br.readLine());
pointList.add(new Point(Integer.parseInt(stk.nextToken()), Integer.parseInt(stk.nextToken())));
}
Collections.sort(pointList);
for (Point point : pointList) {
System.out.println(point.toString());
}
}
}
728x90
'Algorithm' 카테고리의 다른 글
[백준-2164번/Java] 카드2 (0) | 2022.11.18 |
---|---|
[백준-18870번/Java] 좌표 압축 (0) | 2022.11.17 |
[백준-11650번/Java] 좌표 정렬하기 (0) | 2022.11.17 |
[백준-1427번/Java] 소트인사이드 (0) | 2022.11.17 |
[백준-3009번/Java] 네 번째 점 (0) | 2022.11.17 |
Comments