๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/11723
- 2์ฐจ์ ํ๋ฉด ์์ ์ N๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. ์ขํ๋ฅผ y์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์ผ๋ก, y์ขํ๊ฐ ๊ฐ์ผ๋ฉด x์ขํ๊ฐ ์ฆ๊ฐํ๋ ์์๋ก ์ ๋ ฌํ ๋ค์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ฒซ์งธ ์ค์ ์ ์ ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค.
- ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ i๋ฒ์ ์ ์์น xi์ yi๊ฐ ์ฃผ์ด์ง๋ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขํ๋ ํญ์ ์ ์์ด๊ณ , ์์น๊ฐ ๊ฐ์ ๋ ์ ์ ์๋ค.
- ์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ ์ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- ์ขํ ์ ๋ ฌํ๊ธฐ์ ๊ฐ์ ๋ฐฉ๋ฒ์ธ Comparator์ ์ฌ์ฉํ์ฌ y์ขํ ๊ฐ์ ์ ๋ ฌํ๊ณ ๋ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ, x๊ฐ์ ์ฌ์ฉํ์ฌ ์ ๋ ฌํ์๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- X
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ11651 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
// ์ขํ ๊ฐ ์ ์ฅํ ๋ฐฐ์ด
int arr[][] = new int[N][2];
// ์
๋ ฅ ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅ
for(int i = 0; i < N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
// ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
Arrays.sort(arr, (n1, n2) -> {
// y๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ ๋ง์ฝ ๋น๊ตํ๋ ๋ ๊ฐ์ด ๊ฐ๋ค๋ฉด
// x๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
if((n1[1] - n2[1]) == 0){
return n1[0] - n2[0];
}
return n1[1] - n2[1];
});
for(int i = 0; i < N; i++){
sb.append(arr[i][0] + " " + arr[i][1] + "\n");
}
System.out.println(sb);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 1018 ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (0) | 2024.07.17 |
---|---|
[Java] BOJ 11866 ์์ธํธ์ค ๋ฌธ์ 0 (0) | 2024.07.17 |
[Java] BOJ 11650 ์ขํ ์ ๋ ฌํ๊ธฐ (0) | 2024.07.16 |
[Java] BOJ 10814 ๋์ด์ ์ ๋ ฌ (2) | 2024.07.16 |
[Java] BOJ 7568 ๋ฉ์น (0) | 2024.07.15 |