๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11270)
< Disastrous Downtime >
๋ฌธ์ ํ์ด
์์ฒญ ๋ฐ์ ์๊ฐ์ ์ ๋ ฌํ์ฌ ์์์๋ถํฐ ๊ฐ๋ฅํ ๋งํผ ๊ฐ์ ์๋ฒ์์ ์ฒ๋ฆฌํ๋๋ก ํ๋ค.
3 2
1000
1010
1999
์ฃผ์ด์ง ์์ ๊ฐ ์์ ๊ฐ๋ค๋ฉด 1000, 1010์ ๊ฐ์ ์๋ฒ์์ ์ฒ๋ฆฌํ๊ณ 1999๋ฅผ ๋ค๋ฅธ ์๋ฒ์์ ์ฒ๋ฆฌํด ์ด 2๊ฐ์ ์๋ฒ๊ฐ ํ์ํ๊ฒ ๋๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class _11270_ { // Disastrous Downtime
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());
ArrayList<Integer> list = new ArrayList<>();
Queue<int[]> queue = new LinkedList<>();
int num[] = new int[n];
for (int i = 0; i < n; i++) {
num[i] = Integer.parseInt(bf.readLine());
}
Arrays.sort(num);
list.add(0);
for (int i = 0; i < n; i++) {
boolean flag = false;
if (list.get(list.size() - 1) < k) {
list.set(list.size() - 1, list.get(list.size() - 1) + 1);
queue.add(new int[] { num[i], list.size() - 1 });
flag = true;
} else if (queue.peek()[0] + 1000 <= num[i]) {
int temp[] = queue.poll();
queue.add(new int[] { num[i], temp[1] });
flag = true;
}
if (!flag) {
list.add(1);
queue.add(new int[] { num[i], list.size() - 1 });
}
}
System.out.println(list.size());
}
}
๋ณ์)
n, k : ์์ฒญ ๊ฐ์, ์ต๋ ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๊ฐ์
list : ๊ฐ ์๋ฒ๋น ์ฒ๋ฆฌํ๊ณ ์๋ ์์ฒญ ๊ฐ์
queue : ์์ฒญ ๋๋ฌ๋์ง ํ์ธํ๊ธฐ ์ํ Queue
์์ฒญ ๊ฐ์์ ์ต๋ ์์ฒญ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์์ฒญ ๊ฐ์๋งํผ ์์ฒญ์ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด์ ์ ์ฅํ ํ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ์์ฒญ์ ์ดํด๋ณด๋ฉฐ ์๋ฒ์ ์์ง ์๋ฆฌ๊ฐ ๋จ์์๋ค๋ฉด ์ถ๊ฐํ๊ณ , ์๋ฆฌ๊ฐ ์๋ค๋ฉด ๋งจ ์ฒ์ ์์ฒญ์ด ๋๋ฌ๋์ง ํ์ธ ํ ๋๋ฌ๋ค๋ฉด ๊ทธ ์๋ฒ์ ์ถ๊ฐํ๋ค. ๋ ๋ค ํด๋น๋์ง ์๋๋ค๋ฉด ์๋ก์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ๋ค.
์ต์ข list์ size๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 9834_Card (0) | 2026.03.25 |
|---|---|
| [Baekjoon] 9780_Range Sum Query (0) | 2026.03.23 |
| [Baekjoon] 18295_Ants (0) | 2026.03.19 |
| [Baekjoon] 13243_Non-decreasing subsegment (0) | 2026.03.18 |
| [Baekjoon] 6230_Buy One Get One Free (0) | 2026.03.16 |