์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step12] 11651 : ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2 (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 31. 16:30

www.acmicpc.net/problem/11651

 

11651๋ฒˆ: ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2

์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 โ‰ค xi, yi โ‰ค 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

2์ฐจ์› ํ‰๋ฉด ์œ„์˜ ์  N๊ฐœ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ขŒํ‘œ๋ฅผ y์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์œผ๋กœ, y์ขŒํ‘œ๊ฐ€ ๊ฐ™์œผ๋ฉด x์ขŒํ‘œ๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ ์˜ ๊ฐœ์ˆ˜ N (1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” i๋ฒˆ์ ์˜ ์œ„์น˜ xi์™€ yi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-100,000 โ‰ค xi, yi โ‰ค 100,000) ์ขŒํ‘œ๋Š” ํ•ญ์ƒ ์ •์ˆ˜์ด๊ณ , ์œ„์น˜๊ฐ€ ๊ฐ™์€ ๋‘ ์ ์€ ์—†๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ ์„ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 

5

0 4

1 2

1 -1

2 2

3 3

 

์˜ˆ์ œ ์ถœ๋ ฅ 

1 -1

1 2

2 2

3 3

0 4


ํ’€์ด

๋ฐ”๋กœ ์ „ ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋ฌธ์ œ. y๋กœ ๋จผ์ € ์ •๋ ฌํ•˜๊ณ  y๊ฐ€ ๊ฐ™์œผ๋ฉด x๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

java
๋‹ซ๊ธฐ
import java.io.*; import java.util.*; public class B11651 { โ€Œpublic static void main(String[] args) throws IOException { โ€Œโ€ŒBufferedReader br = new BufferedReader(new InputStreamReader(System.in)); โ€Œโ€Œ โ€Œโ€Œint n = Integer.parseInt(br.readLine()); โ€Œโ€Œint[][] xy = new int[n][2]; โ€Œโ€Œ โ€Œโ€ŒStringTokenizer st; โ€Œโ€Œfor(int i = 0; i < n; i++) { โ€Œโ€Œโ€Œst = new StringTokenizer(br.readLine()); โ€Œโ€Œโ€Œxy[i][0] = Integer.parseInt(st.nextToken()); โ€Œโ€Œโ€Œxy[i][1] = Integer.parseInt(st.nextToken()); โ€Œโ€Œ} โ€Œโ€Œ โ€Œโ€ŒArrays.sort(xy, new Comparator<int[]>() { โ€Œโ€Œโ€Œ@Override โ€Œโ€Œโ€Œpublic int compare(int[] o1, int[] o2) { โ€Œโ€Œโ€Œโ€Œif(o1[1] == o2[1]){ โ€Œโ€Œโ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹return o1[0] - o2[0]; โ€Œโ€Œโ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹}else{ โ€Œโ€Œโ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹return o1[1] - o2[1]; โ€Œโ€Œโ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹โ€‹} โ€Œโ€Œโ€Œ} โ€Œโ€Œ}); โ€Œโ€Œ โ€Œโ€Œfor(int i = 0; i < n; i++) { โ€Œโ€Œโ€ŒSystem.out.println(xy[i][0] + " " + xy[i][1]); โ€Œโ€Œ} โ€Œ} }