BOJ#11650 좌표 정렬하기
* 문제
* 풀이
쉬운 문제이지만 실수했던 점
-> x에 대해 확실히 기준을 세워줄 것
틀림
@Override
public int compareTo(Coordinate o) {
return this.x < o.x ? -1 : this.y < o.y ? -1 : 1;
}
맞음
@Override
public int compareTo(Coordinate o) {
return this.x < o.x ? -1 : this.x > o.x ? 1 : this.y < o.y ? -1 : 1;
}
* 나의 코드
https://github.com/stack07142/BOJ/blob/master/BOJ%2311650_AligningCoordinates/src/Main.java
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
/**
* BOJ#11650 좌표 정렬하기
* https://www.acmicpc.net/problem/11650
*/
public class Main {
public static void main(String[] args) throws IOException {
int N; // 점의 개수
Coordinate[] coord;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
N = Integer.parseInt(br.readLine());
coord = new Coordinate[N];
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
coord[i] = new Coordinate(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(coord);
for (int i = 0; i < N; i++) {
bw.write(coord[i] + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
class Coordinate implements Comparable<Coordinate> {
int x;
int y;
Coordinate(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Coordinate o) {
return this.x < o.x ? -1 : this.x > o.x ? 1 : this.y < o.y ? -1 : 1;
}
@Override
public String toString() {
return x + " " + y;
}
}
'Algorithm > 정렬' 카테고리의 다른 글
BOJ#3665 최종 순위 (2) | 2017.05.30 |
---|---|
BOJ#10814 나이순 정렬 (0) | 2017.05.01 |
BOJ#2252 줄 세우기 (0) | 2017.02.13 |
BOJ#13415 정렬 게임 (0) | 2016.12.02 |
BOJ#1005_ACM Craft (0) | 2016.11.04 |