๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/3211)
< kino >
๋ฌธ์ ํ์ด
์น๊ตฌ์ ์์ฒญ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ํ๊ด์ ๊ฐ ์ต์ํ์ ์ฌ๋ ์๋ฅผ ๊ฒฐ์ ํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class _3211_ { // kino
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bf.readLine());
int arr[] = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(bf.readLine());
}
Arrays.sort(arr);
int result = 0;
int max = arr[0];
while (result < N) {
result += (max - result);
max = Math.max(max, arr[result]);
if (result >= max) {
break;
}
}
System.out.println(result + 1);
}
}
๋ณ์)
N : ์น๊ตฌ ์
arr : ์น๊ตฌ์ ์์ฒญ
result : ์ํ๊ด์ ๊ฐ ์ต์ํ์ ์ฌ๋ ์
max : ์น๊ตฌ์ ์์ฒญ ์ต๋๊ฐ
์น๊ตฌ ์ N์ ์ ๋ ฅ๋ฐ๋๋ค. N๋งํผ ์น๊ตฌ์ ์์ฒญ์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด arr์ ์ ์ฅํ๋ค. arr์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ๋ฐฐ์ด์ ์์์๋ถํฐ ํ์ํ๋ฉฐ ์น๊ตฌ์ ์์ฒญ๊ฐ์ ๋ง๋ ์ต์ํ์ ์ฌ๋ ์๋ฅผ ๊ตฌํ๋ค.
result๋ฅผ 0, max๋ฅผ arr[0]์ผ๋ก ์ด๊ธฐํํ ํ result๊ฐ N๋ณด๋ค ์์ ๋ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) max๊ฐ๋งํผ ์น๊ตฌ๋ฅผ ๋ฐ๋ ค๊ฐ์ผ ํ๋ฏ๋ก result + (max-result)
2) max๋ฅผ arr[result] ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ
3) ๋ง์ฝ result >= max๋ผ๋ฉด ๋ชจ๋ ์ฌ๋์ ์์ฒญ์ด ์ถฉ์กฑ๋ ์ต์ํ์ ์ฌ๋ ์๋ฅผ ๊ตฌํ ๊ฒ์ด๋ฏ๋ก ์ข ๋ฃ
์ต์ข result๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 15237_Cipher (0) | 2025.04.03 |
---|---|
[Baekjoon] 14184_IOI 2017 Logo (0) | 2025.04.01 |
[Baekjoon] 5614_ๅ้ก 3 (0) | 2025.03.31 |
[Baekjoon] 24755_Election Paradox (0) | 2025.03.27 |
[Baekjoon] 23895_Allocation (0) | 2025.03.26 |