티스토리 뷰

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;
   }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함