코딩테스트/프로그래머스
🏆프로그래머스 lv 2 - 더 맵게
sunNprize
2022. 1. 7. 15:00
https://yoongrammer.tistory.com/81
-- 우선순위 큐에 대해..
1. 우선순위 큐?
-- 우선 순위 큐는 들어간 순서에 상관없이 일정한 규칙에 따라 우선순위를 선정하고, 우선순위가 높은 데이터가 가장 먼저 나오는 형태
2. 우선순위 큐 기능?
-- E peek() : 큐의 처음에 있는 원소를 삭제하지 않고 가져온다. 큐가 비어있으면 null을 반환
boolean offer(E e) :원소를 추가할 때 큐의 용량을 넘어서면 false를 반환한다.
E poll() : 큐의 처음에 있는 원소를 가져온다. 큐에 원소가 없으면 null을 반환한다.
E remove() : 큐의 처음에 있는 원소를 제거한다. 큐에 원소가 없으면 예외가 발생한다.
import java.util.PriorityQueue;
class Solution {
public int solution(int[] scoville, int K) {
PriorityQueue<Integer> que=new PriorityQueue<Integer>();
//큐에 배열 넣어주기
for(int num:scoville){
que.add(num);
}
//섞은 횟수 저장할 변수
int count=0;
while(que.peek()<K&&!que.isEmpty()) {//peek()은 꺼내지 않고 값만 확인
int lessSpicy=que.poll();//poll()은 우선순위가 젤 우선인 값을 꺼냄
if(!que.isEmpty()){
int secondLessSpicy=que.poll();
que.add(lessSpicy+secondLessSpicy*2);
count++;
}else{
return -1;
}
}
return count;
}
}