Algorithm/정렬

BOJ#11650 좌표 정렬하기

밤이2209 2017. 3. 22. 15:15

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