
- 배열을 우선순위 큐에 넣어준다.
- poll을 사용할때마다 최소값을 꺼낼 수 있다. 꺼내서 계산한 값을 바로 넣어준다.
2-1. 1개만 있는 경우 음식을 섞을 수 없으므로 -1를 반환해준다.
2-2. 2개 이상인 경우 카운트 해준다.
- 최소값이 K값 이상이면 카운트 된 값을 반환해준다.
import java.io.IOException;
import java.lang.*;
import java.util.Arrays;
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
int rst = 0;
PriorityQueue<Integer> pq = new PriorityQueue();
Arrays.stream(scoville).forEach(x -> pq.add(x));
while (!pq.isEmpty() && pq.peek() < K) {
if(pq.size() == 1)
return -1;
pq.add(pq.poll() + (pq.poll() * 2));
rst++;
}
if(pq.peek() >= K) {
return rst;
}
return -1;
}
}