힙(Heap)-더맵게 [JAVA]

LeHoODU·2023년 10월 31일
0
post-thumbnail

🔑우선순위 큐를 이용

int result = 0;
int[] scoville = {1, 2, 3, 9, 10, 12};
int k = 7;
	//우선순위 큐 선언
    PriorityQueue<Integer> pq = new PriorityQueue<>();
    //큐에 스코빌수치 값들 삽입
    for (int i : scoville) pq.add(i);
    
    //가장 작은 값이 K 이상이라면 return 0
    if(pq.peek()>=K) return result;
    
    //큐의 가장 작은 값이 K미만일 경우
    while(pq.peek() < K){
    
   		//큐의 사이즈가 1이라면, return -1
        if(pq.size() == 1) return -1;
        
        //가장 작은 두개의 값 제거 및 반환하여 계산 후 다시 삽입
        int a = pq.poll();
        int b = pq.poll();
        pq.add(a+(b*2));
        result +=1 ;
    }![](https://velog.velcdn.com/images/laeho47/post/9e61443f-a7ee-404c-9c39-13f92626dbd8/image.png)
![](https://velog.velcdn.com/images/laeho47/post/5ae7e63a-7bc2-4262-adfb-3e7bd08f3465/image.png)

    if (result == 0) return -1;
    return result;
}
profile
Back-End Developer

0개의 댓글