๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/30337)
< Linas ir mandarinai >
๋ฌธ์ ํ์ด
๊ทค์ ๋จน์ ์ ์๋ ๊ธฐ๊ฐ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ํ์ง ์์ ๊ทค์ ํ๋ฃจ์ ๋จน์ ์ ์๋ ์ต๋ ๊ฐ์๋งํผ ๋จน๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _30337_ { // Linas ir mandarinai
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
PriorityQueue<Integer> queue = new PriorityQueue<>();
for (int i = 0; i < n; i++) {
int d = Integer.parseInt(bf.readLine());
queue.add(d);
}
int day = 1, temp = 0, result = 0;
while (!queue.isEmpty()) {
if (day <= queue.peek()) {
temp += 1;
result += 1;
queue.poll();
} else {
queue.poll();
}
if (temp == k) {
temp = 0;
day += 1;
}
}
System.out.println(result);
}
}
๋ณ์)
n, k : ๊ทค ๊ฐ์, ํ๋ฃจ์ ๋จน์ ์ ์๋ ์ต๋ ๊ฐ์
queue : ๊ทค ๋จน์ ์ ์๋ ๊ธฐ๊ฐ๋ค
day : ์ผ
temp : ํ๋ฃจ์ ๋จน์ ๊ทค์ ์
result : ์ต๋๋ก ๋จน์ ์ ์๋ ๊ทค์ ๊ฐ์
๊ทค ๊ฐ์์ ํ๋ฃจ์ ๋จน์ ์ ์๋ ์ต๋ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๊ทค ๊ฐ์๋งํผ ๋จน์ ์ ์๋ ๊ธฐ๊ฐ์ ์ ๋ ฅ๋ฐ์ PriorityQueue์ ์ ์ฅํ๋ค. PriorityQueue๊ฐ ๋น ๋๊น์ง ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ํ์ฌ ๋ ์ง <= ๊ทค ๋จน์ ์ ์๋ ๊ธฐ๊ฐ : ๊ทค ๋จน๊ธฐ
2) ํ์ฌ ๋ ์ง > ๊ทค ๋จน์ ์ ์๋ ๊ธฐ๊ฐ : ๊ทค ์ํจ
3) ํ๋ฃจ์ ๋จน์ ์ ์๋ ์ต๋ ๊ฐ์๋งํผ ๊ทค์ ๋จน์๋ค๋ฉด day+1
์ต์ข result๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 6245_Cow Solitaire (0) | 2026.04.03 |
|---|---|
| [Baekjoon] 9844_Gecko (0) | 2026.04.02 |
| [Baekjoon] 15407_How to Eat at a Buffet (0) | 2026.03.31 |
| [Baekjoon] 15287_Easy Quest (0) | 2026.03.30 |
| [Baekjoon] 9834_Card (0) | 2026.03.25 |