Skip to content

Commit 2219c86

Browse files
committed
add PROGRAMMERS-42626
1 parent 0d55239 commit 2219c86

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
| PROGRAMMERS-42578 | [python](programmers/problem42578) | [의상 (Clothes)](https://school.programmers.co.kr/learn/courses/30/lessons/42578) |
3030
| PROGRAMMERS-42586 | [java](programmers/problem42586) | [기능개발 (Function Development)](https://school.programmers.co.kr/learn/courses/30/lessons/42586) |
3131
| PROGRAMMERS-42587 | [java](programmers/problem42587) | [프로세스 (Process)](https://school.programmers.co.kr/learn/courses/30/lessons/42587) |
32+
| PROGRAMMERS-42626 | [java](programmers/problem42626) | [더 맵게 (Spicier)](https://school.programmers.co.kr/learn/courses/30/lessons/42626) |
3233
| PROGRAMMERS-42628 | [java](programmers/problem42628) | [이중우선순위큐 (Double-Ended Priority Queue)](https://school.programmers.co.kr/learn/courses/30/lessons/42628) |
3334
| PROGRAMMERS-42842 :star: | [java](programmers/problem42842) | [카펫 (Carpet)](https://school.programmers.co.kr/learn/courses/30/lessons/42842) |
3435
| PROGRAMMERS-42883 | [c++](programmers/problem42883) | [큰 수 만들기 (Make a Big Number)](https://school.programmers.co.kr/learn/courses/30/lessons/42883) |
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package problem42626;
2+
3+
import java.util.PriorityQueue;
4+
5+
public class Spicier {
6+
public static void main(String[] args) {
7+
var sol = new Spicier();
8+
var scoville1 = new int[]{1, 2, 3, 9, 10, 12};
9+
var K1 = 7;
10+
var expected1 = 2;
11+
var result1 = sol.solution(scoville1, K1);
12+
System.out.println("expected: " + expected1 + ", result: " + result1);
13+
}
14+
15+
public int solution(int[] scoville, int K) {
16+
var queue = new PriorityQueue<Integer>();
17+
for (var i : scoville) {
18+
queue.add(i);
19+
}
20+
21+
var mixCount = 0;
22+
while (queue.size() >= 2 && queue.peek() < K) {
23+
var first = queue.poll();
24+
assert queue.peek() != null;
25+
var second = queue.poll();
26+
queue.add(first + second * 2);
27+
mixCount++;
28+
}
29+
30+
if (queue.size() == 0 || queue.peek() < K) {
31+
return -1;
32+
}
33+
34+
return mixCount;
35+
}
36+
}

0 commit comments

Comments
 (0)