public int solution(int[] scoville, int k) {
int result = 0;
//1
PriorityQueue<Integer> queue = new PriorityQueue();
for(int sco : scoville) {
queue.offer(sco);
}
//2
while(queue.peek() < k) {
//모든 음식의 스코빌 지수를 K 이상으로 만들 수 없는 경우에는 -1을 return 합니다.
if(queue.size() == 1)
return -1;
result += 1;
queue.offer(queue.poll() + queue.poll()*2);
}
return result;
}
특별히 어렵지 않게 풀었던 문제다.
문제에서 주어진 공식을 코드에 그대로 적용하면 쉽게 풀린다.