๋ฌธ์
ํด๋น ํฌ์คํ ์ ๋ฐฑ์ค์ 11650๋ฒ ์ขํ ์ ๋ ฌํ๊ธฐ ์ ์ ๊ทผ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํ ๊ธ ์ ๋๋ค.
์ ๋ต ์์ค ์ฝ๋๋ฅผ ํ์ธํ์๋ ค๋ฉด solve url ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ๊ทผํด์ผ ํ๋์ง๋ฅผ ๋จผ์ ์๊ฐํด๋ณด์.
ํด๊ฒฐ๋ฒ
์ด๋ฒ ์ขํ ์ ๋ ฌํ๊ธฐ ๋ฌธ์ ๋ ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฌ ๋ฌธ์ ์ ์กฐ๊ธ ์ฑ๊ฒฉ์ด ๋ค๋ฅธ ๋ฌธ์ ์ด๋ค.
๋ณดํต ์ด๋ฐ ๊ตฌํ ๋ฌธ์ ๋ฅผ ์ ๋ ฌ ๊ธฐ์ค ๋ณ๊ฒฝํ๊ธฐ, ์ ๋ ฌ ๊ธฐ์ค ๋ฐ๊พธ๊ธฐ, ์ ๋ ฌ ๊ธฐ์ค ์ฌ์ ์๋ผ๋ ํ์ดํ์ด๋ผ๊ณ ํ๋ค.
๋ด๊ฐ ๊ฒฝํํ๋ ์ฝ๋ฉํ
์คํธ์์๋ ์์ ๊ฐ์ ๋ฐฉ์์ ๋ฌธ์ ๋ฅผ ๋ช๋ฒ ๋ง์ฃผํ ์ ์ด ์์๋ค.
๋ฌผ๋ก ์ด๋ฐ์์ผ๋ก ๋๋๊ณ ์ ๋ ฌ ๊ธฐ์ค์ ๋ฐ๊พธ์ธ์! ๋ผ๊ณ ํ์ง๋ ์๋๋ค.
๋์ถฉ ๋ฌธ์ ๋ฅผ ๋ณด๋ค๊ฐ ์~ ์ด๊ฑด ๊ฐ์ฒด๋ผ๋ฆฌ ์ผ๋ฐ์ ์ ๋ ฌ ๋ง๊ณ ๋ค๋ฅธ ์ ๋ ฌ์ ํ๊ณ ๋ก์ง์ ๋๋ฆฌ๋ฉด ๋ ๋น ๋ฅด๊ฒ ๋ค ํ๋ ๊ฒ์ด ๋๋ถ๋ถ์ด์๋ค.
์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ ์๋ฐ์ Comparator์ ์์์ผ ํ๋ค.
๋ง์ฝ Comparator
๊ณผ Comparable
์ ๋ํด์ ์์ง ๋ชปํ๋ค๋ฉด Java์์ Comparator๋ก ์ ๋ ฌ ๊ธฐ์ค ๋ฐ๊พธ๊ธฐ์์ ํ์ธํ ์ ์๋ค.
์ ๊ทผ๋ฒ
์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ค.
Point
ํด๋์ค ์์ฑ- ์ ๋ ฅ ์ฒ๋ฆฌ
MyComparator
๊ตฌํArrays.sort
- ์ถ๋ ฅ ์ฒ๋ฆฌ
์ ๋ต ์ฝ๋
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
Point[] points = new Point[n];
for (int i = 0; i < n; i++) {
String[] xy = br.readLine().split(" ");
points[i] = new Point(
Integer.parseInt(xy[0]),
Integer.parseInt(xy[1]));
}
Comparator<Point> myComparator = new Comparator<Point>() {
@Override
public int compare(Point p1, Point p2) {
if(p1.x > p2.x) {
return 1;
}else if (p1.x == p2.x){
if(p1.y > p2.y) {
return 1;
}else return -1;
}
return -1;
}
};
Arrays.sort(points, myComparator);
for (int i = 0; i < n; i++) {
bw.write(points[i].x + " " + points[i].y + "\n");
}
bw.flush();
bw.close();
}
}
class Point {
int x;
int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
ํ๊ณ
๋๊ธ