๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42626
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
< ๋ ๋งต๊ฒ >
๋ฌธ์ ํ์ด (Java)
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> queue = new PriorityQueue<>();
for (int i = 0; i < scoville.length; i++) {
queue.add(scoville[i]);
}
while (!queue.isEmpty() && queue.peek() < K) {
if (queue.size() == 1) {
answer = -1;
break;
}
int num1 = queue.poll();
int num2 = queue.poll();
queue.add(num1 + (num2 * 2));
answer += 1;
}
return answer;
}
}
์ฐ์ ์์ ํ์ scoville ๋ฐฐ์ด์ ์๋ ๊ฐ๋ค์ ๋ค ์ ์ฅํ๋ค. queue์ peek ๊ฐ์ด K๋ณด๋ค ์์ ๋ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1. queue์ ํฌ๊ธฐ๊ฐ 1์ด๋ผ๋ฉด ๋ชจ๋ ์์์ ์ค์ฝ๋น ์ง์๋ฅผ K ์ด์์ผ๋ก ๋ง๋ค ์ ์์ผ๋ฏ๋ก answer์ -1์ ์ ์ฅํ๊ณ ์ข ๋ฃ
2. queue์์ ๊ฐ 2๊ฐ pop
3. ๊ฐ์ฅ ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ + (๋ ๋ฒ์งธ๋ก ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์ * 2)๋ฅผ queue์ ์ ์ฅ
4. answer +1
์ต์ข answer์ ๋ฐํํ๋ค.

์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต,
https://school.programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [programmers] ์ฃผ์๊ฐ๊ฒฉ (0) | 2026.08.13 |
|---|---|
| [programmers] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2026.08.12 |
| [programmers] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2026.08.10 |
| [programmers] K๋ฒ์งธ์ (0) | 2026.07.31 |
| [programmers] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2026.07.30 |