๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/13984)
< Contest Score >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ํ์ด ์๊ฐ์ด ์งง์ ๋ฌธ์ ๋ฅผ ์ ํํด์ ํผ๋ค.
ํ๋ํฐ ์๊ฐ = ๋ชจ๋ ๋ฌธ์ ์ ์ ์ถ ์๊ฐ์ ํฉํ ๊ฐ
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 _13984_ { // Contest Score
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<>();
long result = 0, time = 0;
for (int i = 0; i < n; i++) {
int t = Integer.parseInt(bf.readLine());
queue.add(t);
if (queue.size() == k) {
time += queue.poll();
result += time;
}
}
while (!queue.isEmpty()) {
time += queue.poll();
result += time;
}
System.out.println(result);
}
}
๋ณ์)
n, k : ๋ฌธ์ ์, ๊ธฐ์ตํ ์ ์๋ ๋ฌธ์ ์
queue : ์ฐ์ ์์ ํ
result, time : ํ๋ํฐ ์๊ฐ, ๋ฌธ์ ์ ์ถ ์๊ฐ
t : ํด๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ
๋ฌธ์ ์์ ํ ๋ฒ์ ๊ธฐ์ตํ ์ ์๋ ๋ฌธ์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ฌธ์ ์๋งํผ ํด๊ฒฐํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ ๋ ฅ๋ฐ์ผ๋ฉฐ queue์ ์ ์ฅํ๋ค. ์ด๋, queue์ size๊ฐ k์ ๊ฐ๋ค๋ฉด queue์์ poll ํ์ฌ ๋ฌธ์ ์ ์ถ ์๊ฐ์ ๊ตฌํ ํ ํ๋ํฐ ์๊ฐ์ ๋ํ๋ค. ์ต์ข queue๊ฐ ๋น ๋๊น์ง poll ํ์ฌ ๋ฌธ์ ์ ์ถ ์๊ฐ์ ํ๋ํฐ ์๊ฐ์ ๋ํ๋ค.
์ต์ข result๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 4649_Tanning Salon (0) | 2025.12.01 |
|---|---|
| [Baekjoon] 5006_Horror List (0) | 2025.11.19 |
| [Baekjoon] 26111_Parentheses Tree (0) | 2025.11.18 |
| [Baekjoon] 11254_Hydraulic Arm (0) | 2025.11.17 |
| [Baekjoon] 5957_Cleaning the Dishes (0) | 2025.11.14 |