리스트에 있는 숫자 중 가장 작은 숫자를 꺼내서 새로운 스코빌 지수로 계산해서 다시 저장, 반복
-> 매번 정렬하면 효율 x
-> 우선순위 큐에 저장
-> 반복한 횟수 result 저장
큐의 가장 작은 숫자가 k이상이면 result, 큐가 비어있으면 -1 반환
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
int result = 0;
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for (int sco : scoville) minHeap.add(sco);
while (!minHeap.isEmpty() && minHeap.peek() <= K) {
int food = minHeap.poll();
if (food < K && !minHeap.isEmpty()) {
food += minHeap.poll() * 2;
minHeap.add(food);
result++;
}
}
return minHeap.isEmpty() ? -1 : result;
}
}