[99클럽 코테 스터디 9일차 TIL] 프로그래머스 - 더 맵게
99클럽 코테 스터디 9일차 TIL 입니다.
[level 2] 더 맵게 - 42626
문제 설명
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)scoville
K
return
풀이 코드
돌아보기
다음에는
Last updated
99클럽 코테 스터디 9일차 TIL 입니다.
섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)Last updated
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>();
for (int s : scoville) pq.offer(s);
// 가장 낮은 수가 K보다 크면 모든 음식의 스코빌 지수가 K보다 크기 때문에 섞을 필요가 없다.
if (pq.peek() >= K) return answer;
// 큐에 저장된 데이터가 2개 이상이어야 섞을 수 있다.
// 가장 낮은 수를 꺼냈을 때 K 이상이면 더 반복할 필요가 없다.
while (pq.size() > 1 && pq.peek() < K) {
pq.offer(pq.poll() + 2 * pq.poll());
answer++;
}
// 큐의 가장 낮은 수가 K보다 작으면 -1 을 반환한다.
return pq.peek() >= K ? answer : -1;
}
}