๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11270_Disastrous Downtime

๋ฟŒ์•ผ._. 2026. 3. 24. 12:37
๋ฌธ์ œ(์ถœ์ฒ˜: 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