๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/25101)
< Robin Hood >
๋ฌธ์ ํ์ด
์ฐ์ ์์ ํ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ๋ถ์ ํ ์ฌ๋์๊ฒ์ 100์ ๋บ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _25101_ { // Robin Hood
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
PriorityQueue<int[]> queue = new PriorityQueue<>(new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0] == o2[0]) {
return o1[1] - o2[1];
}
return o2[0] - o1[0];
}
});
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
queue.add(new int[] { Integer.parseInt(st.nextToken()), i });
}
boolean flag = false;
for (int i = 0; i < k; i++) {
if (queue.peek()[0] <= 100) {
flag = true;
break;
}
int temp[] = queue.poll();
temp[0] -= 100;
queue.add(temp);
}
if (flag) {
bw.write("impossible");
} else {
int result[] = new int[n];
while (!queue.isEmpty()) {
int temp[] = queue.poll();
result[temp[1]] = temp[0];
}
for (int i = 0; i < n; i++) {
bw.write(result[i] + " ");
}
}
bw.flush();
}
}
๋ณ์)
n, k : ์ฌ๋ ์, ์ํํด์ผ ํ ์ ๋์ ์
queue : ์ฐ์ ์์ ํ
flag : ์ํ ์ฌ๋ถ
result : ๋จ์ ์๋ ์ด ์ฌ์ฐ
์ฌ๋ ์์ ์ํํด์ผ ํ ์ ๋์ ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ฐ์ ์์ ํ๋ฅผ ์ ์ธํ์ฌ ์ฌ์ฐ์ด ๋ง์ ์์ผ๋ก, ์ฌ์ฐ์ด ๊ฐ๋ค๋ฉด ๋ชฉ๋ก์์ ์์ ์๋ ์ฌ๋ ์์ผ๋ก ์ ๋ ฌํ๋ค. ์ฌ๋ ์๋งํผ ์ฌ์ฐ์ ์ ๋ ฅ๋ฐ์ ์ฐ์ ์์ ํ์ ์ ์ฅํ๋ค. ์ํํด์ผ ํ ์ ๋์ ์๋งํผ ์ฐ์ ์์ํ๋ฅผ ์ดํด๋ณด๋ฉฐ 100๋ณด๋ค ํด ๋ poll ํ์ฌ 100์ ๋บ ํ ๋ค์ ์ฐ์ ์์ ํ์ ์ ์ฅํ๋ค. 100 ์ดํ๋ผ๋ฉด ์ ๋๋ฅผ ์ํํ ์ ์์ผ๋ฏ๋ก ์ข ๋ฃํ๋ค.
์ต์ข flag ๊ฐ์ด true๋ผ๋ฉด "impossible"์ ์ถ๋ ฅํ๊ณ , false๋ผ๋ฉด ์ฐ์ ์์ ํ์ ์๋ ๋ชจ๋ ๊ฐ์ poll ํ์ฌ ๋ฐฐ์ด์ ๋ชฉ๋ก ์์ผ๋ก ์ ์ฅํ ๋ค ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 27589_Streets Ahead (0) | 2025.12.17 |
|---|---|
| [Baekjoon] 6235_Argus (0) | 2025.12.16 |
| [Baekjoon] 5872_Clumsy Cows (0) | 2025.12.15 |
| [Baekjoon] 17047_Titlovi (0) | 2025.12.12 |
| [Baekjoon] 10331_Miscalculation (0) | 2025.12.10 |