https://www.acmicpc.net/problem/2075
๐ ์๋ฐ(Java)๋ก ํธ๋ N๋ฒ์งธ ํฐ ์ ๋ฌธ์ - ๋ฐฑ์ค 2075 ๐งฎ
๐ ๋ฌธ์ ๊ฐ์
๋ฐฑ์ค 2075๋ฒ - N๋ฒ์งธ ํฐ ์ ๋ฌธ์ ์ ๋๋ค.
N x N ํฌ๊ธฐ์ ํ๋ ฌ์ด ์ฃผ์ด์ก์ ๋, ๋ชจ๋ ์๋ฅผ ์ ๋ ฌํ์ ๋ N๋ฒ์งธ๋ก ํฐ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
• ๋จ์ ์ ๋ ฌ๋ก ํ ์ ์์ง๋ง, ํจ์จ์ ์ธ ํ์ด๊ฐ ์ค์ํฉ๋๋ค.
• ๋ฉ๋ชจ๋ฆฌ ์ ํ๊ณผ ์๊ฐ ์ ํ์ ๊ณ ๋ คํ๋ฉด ์ฐ์ ์์ ํ ์ฌ์ฉ์ด ๋ ์ ์ ํฉ๋๋ค.
๐ก ์์ ์ ๋ ฅ
5
12 7 9 15 5
13 8 11 19 6
21 10 26 31 16
48 14 28 35 25
52 20 32 41 49
๐ก ์์ ์ถ๋ ฅ
35
โก ๋ชจ๋ ์ ์ค 5๋ฒ์งธ๋ก ํฐ ์(๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ๊ธฐ์ค)๋ 35
๐ ์ ๊ทผ ๋ฐฉ์
ํ์ฌ ์ฝ๋๋ ๋ชจ๋ ๊ฐ์ ๋ฐฐ์ด์ ๋ฃ๊ณ ์ ๋ ฌํ ๋ค N*N - N๋ฒ์งธ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
์ฆ, ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ์ N๋ฒ์งธ ํฐ ์๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ์ (N*N - N)๋ฒ์งธ ์ธ๋ฑ์ค์ ์์นํ๋ค๋ ์ ์ ์ด์ฉํ ํ์ด์ ๋๋ค.
ํ์ง๋ง ์๊ฐ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ์ฐ์ ์์ ํ(์ต์ ํ)์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ ์ ํฉํฉ๋๋ค.
๐น ํ์ฌ ์ฝ๋ ํด์ค (์ ๋ ฌ ๋ฐฉ์)
int[] arr = new int[N*N];
for(int i = 0 ; i < N ; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j = 0 ; j < N ; j++){
arr[i*N+j] = Integer.parseInt(st.nextToken());
}
}
Arrays.sort(arr);
System.out.println(arr[N*N-N]);
โ ๋ชจ๋ ์๋ฅผ arr[]์ ์ ์ฅํ๊ณ
โ ์ ๋ ฌํ ํ (N*N - N)๋ฒ์งธ ์ธ๋ฑ์ค ์ถ๋ ฅ → N๋ฒ์งธ ํฐ ์
๐ฆ ๋์: ์ฐ์ ์์ ํ(PriorityQueue)๋ฅผ ํ์ฉํ ํจ์จ์ ์ธ ํ์ด
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for (int j = 0; j < N; j++) {
int num = Integer.parseInt(st.nextToken());
pq.add(num);
if (pq.size() > N) {
pq.poll(); // N๊ฐ๋ฅผ ์ด๊ณผํ๋ฉด ๊ฐ์ฅ ์์ ์ ์ ๊ฑฐ
}
}
}
System.out.println(pq.peek());
โ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด ํญ์ ํฐ ์ N๊ฐ๋ง ์ ์ง
โ ์ต์ข ์ ์ผ๋ก N๋ฒ์งธ ํฐ ์๋ pq.peek()
๐ ์ ๋ฆฌ
โ ํต์ฌ ํฌ์ธํธ
โ N x N ํ๋ ฌ์ ๋ชจ๋ ๊ฐ์ ์ ๋ ฌํ์ฌ N๋ฒ์งธ ํฐ ์๋ฅผ ์ฐพ๋ ๋ฌธ์
โ ๋จ์ ์ ๋ ฌ ๋ฐฉ์๋ ๊ฐ๋ฅํ์ง๋ง, ์ฐ์ ์์ ํ ์ฌ์ฉ์ด ๋ ํจ์จ์
โ ์ ๋ ฅ์ด ์ปค์ง์๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๋์์ ํ ๋ฐฉ์์ด ์ ๋ฆฌํจ
๐ฏ ์ด ๋ฌธ์ ๋ฅผ ํตํด ๋ฐฐ์ธ ์ ์๋ ์
โ N๋ฒ์งธ ํฐ ๊ฐ์ ๊ตฌํ ๋๋ “์ต์ ํ”์ ์ ์งํ๋ ๋ฐฉ์์ด ํจ๊ณผ์
โ ๋ฐฐ์ด ์ ๋ ฌ ๋์ ์ฐ์ ์์ ํ๋ฅผ ๋ ์ฌ๋ฆฌ๋ ์ต๊ด ๊ธฐ๋ฅด๊ธฐ
โ ์ ๋ ฅ์ด ํฌ๊ณ ์๊ฐ ์ ํ์ด ํ์ดํธํ ์๋ก ์ ๋ ฌ๋ณด๋ค ํ ๋ฐฉ์ ๊ณ ๋ ค
์ด ๊ธ์ด ๋์์ด ๋์ จ๋ค๋ฉด ์ข์์์ ๊ณต์ ๋ถํ๋๋ฆฝ๋๋ค! ๐
'Algorithm & Data Structures > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
b3665. ์ต์ข ์์ (0) | 2025.04.09 |
---|---|
b.2696 ์ค์๊ฐ ๊ตฌํ๊ธฐ (0) | 2025.04.07 |
b.3273 ๋ ์์ ํฉ (0) | 2025.04.01 |
b.11657 ํ์๋จธ์ (0) | 2025.03.20 |
b1956. ์ด๋ (0) | 2025.03.20 |