처음에 배열로 시도를 했으나 효율성 테스트에서 통과하지 못하고
PriorityQueue를 사용해서 통과했다.
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
 | 
 import java.util.*; 
class Solution { 
    public int solution(int[] scoville, int K) { 
        int count = 0; //섞은 횟수 
        PriorityQueue<Integer> minHeap = new PriorityQueue<>(); //최소힙 
        for(int s : scoville) { 
            minHeap.offer(s); 
        } 
        while(minHeap.peek() < K) { 
            if(minHeap.size() < 2) { //스코빌 지수가 K보다 작은데 원소가 하나일 경우 
                return -1; 
            } 
            count++; 
            minHeap.offer(minHeap.poll() + (minHeap.poll() * 2)); 
        } 
        return count; 
    } 
} 
 | 
cs | 

'Algorithm > PROGRAMMERS' 카테고리의 다른 글
| [완전탐색] 완전탐색이란 (0) | 2020.11.24 | 
|---|---|
| [힙(Heap)] 우선순위 큐(PriorityQueue) (0) | 2020.11.10 | 
| [해시] HashMap 자주 쓰는 함수 정리 (0) | 2020.11.08 | 
| [해시] 완주하지 못한 선수 JAVA (0) | 2020.11.08 |