๋ฐฑ์ค 11650 ์ขํ ์ ๋ ฌํ๊ธฐ with JAVA
https://www.acmicpc.net/problem/11650
11650๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ
์ฒซ์งธ ์ค์ ์ ์ ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ i๋ฒ์ ์ ์์น xi์ yi๊ฐ ์ฃผ์ด์ง๋ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขํ๋ ํญ์ ์ ์์ด๊ณ , ์์น๊ฐ ๊ฐ์ ๋ ์ ์ ์๋ค.
www.acmicpc.net
๋ฌธ์ ์ ์ ๋ต๋ฅ ์ 47.957๋ก ์ฌ๋ฌ ๋ฐฑ์ค ๋ฌธ์ ๋ค์ ๋นํด์ ๋์ ํธ์ด์ง๋ง ๋์๊ฒ๋ ์ข ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.util.*; import java.io.*; public class Main { static int arr[][]; 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()); 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, (arr_1, arr_2) -> { if (arr_1[0] == arr_2[0]) { return arr_1[1] - arr_2[1]; } else { return arr_1[0] - arr_2[0]; } }); . for (int i = 0; i < N; i++) { sb.append(arr[i][0] + " " + arr[i][1]).append('\n'); } System.out.println(sb); } } | cs |
๋จผ์ BufferedReader๋ฅผ ํตํด ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์์จ๋ค. ๊ทธ ๋ค์ StringBuilder๋ฅผ ์์ฑํด์ค๋ค. ๋ฐ์ for๋ฌธ์์ ์ฐ์ผ ๊ฒ์ด๋ค.
๊ทธ ๋ค์ n์ ์ ๋ ฅ ๋ฐ๊ณ n์ ๊ฐ์ ๋ฐ๋ผ์ ์ด์ฐจ์ ๋ฐฐ์ด์ arr์ ๋ง๋ค์ด ์ค๋ค. ๊ทธ ๋ค์ N๋ฒ๋งํผ์ ๋ฐ๋ณต์ ํตํด์ br์ ํตํด ์ฝ์ด๋ค์ธ ๊ฐ์ StringTokenizer๋ก ๋ถ๋ฆฌํด์ ๊ฐ๊ฐ์ ๊ฐ๋ค์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
๊ทธ ๋ค์ Arrays.sort์ compare ๋ฉ์๋๋ฅผ ๋๋ค์์ผ๋ก ๊ตฌํํด์ค๋ค. ๋ง์ฝ ๋ ๋ฐฐ์ด์ x์์(0)์ด ๊ฐ์ผ๋ฉด (1
๊ทธ ๋ค์ sb์ ์ถ๊ฐํด ๊ทธ๊ฒ์ ์ถ๋ ฅํ๋ค