๋ฌธ์
์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ์์
๋ฌธ์ ์ดํด
์ด ๋ฌธ์ ๊ฐ ์ฐ๋ฆฌ๋ฅผ ํตํด ํ์ธํ๊ณ ์ ํ๋ ๊ฐ๋ ์ ๋ ๊ฐ์ง์ ํ๋๋ฅผ ๋ฌถ์ด์ ๋น๊ต๋ฅผ ํ ์ ์๋๋ ์ด๋ค.
์ด ๋ฌธ์ ๋ ๋๊ฐ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ๋ฅํ๋ค.
- 2์ฐจ์ ๋ฐฐ์ด๋ก์จ์ ํ์ด
- ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ comparable์ ์ด์ฉํ ํ์ด.
๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ
๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ๋ ฌ
๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๊ฐ์ฒด์ ์ ๋ ฌ ๋ฐฉ์์ ์ฌ์ ์ ํ๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์์๊ฒ ๊ฐ๋ค.
์์ค ์ฝ๋
package algorithm.class04_Sort;
import java.util.*;
public class Prob08_CoordinationSort {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Point[] points = new Point[n];
for (int i = 0; i < n; i++) {
int x = input.nextInt();
int y = input.nextInt();
points[i] = new Point(x, y);
}
Arrays.sort(points);
for (int i = 0; i < n; i++) {
System.out.println(points[i].x + " " + points[i].y);
}
}
}
class Point implements Comparable<Point>{
Integer x, y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(Point o){
if(this.x > o.x) return 1;
else if(this.x.equals(o.x)) {
if(this.y > o.y) return 1;
else if(this.y.equals(o.y)) return 0;
else return -1;
}else return -1;
}
}
๋๊ธ