https://school.programmers.co.kr/learn/courses/30/lessons/42626
섞은 음식의 스코빌 지수를 구할 때 가장 맵지 않은 음식의 지수와 두번째로 맵지 않은 음식의 지수를 구분해야함을 주의해야한다.
왜냐면 두번쨰로 맵지 않은 음식의 지수의 두배를 곱해야 하기 때문..
처음엔 단순히 queue를 사용했다가 통과한 케이스보다 통과하지 못한 케이스가 더 많아 한참 고민했다 ㅎ_ㅎ
결론은 priorityqueue를 사용하자...
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
Arrays.sort(scoville);
PriorityQueue<Integer> q = new PriorityQueue();
for (int i = 0; i < scoville.length; i++) {
q.add(scoville[i]);
if (scoville[i] >= K) break;
}
int count = 0;
while(!q.isEmpty()) {
int left = q.poll();
if (left >= K) break;
if (q.isEmpty()) return -1;
int right = q.poll();
int mix = left + right * 2;
q.offer(mix);
count++;
}
return count;
}
}