힙(HEAP)

더 맵게

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
import java.util.PriorityQueue;

class Solution {
public int solution(int[] scoville, int K) {
int cnt = 0;
PriorityQueue<Integer> heap = new PriorityQueue();

// 큐에 원소 삽입
for(int s: scoville) {
heap.offer(s);
}

while(heap.peek() <= K) {

// scoville의 길이는 2 이상 이므로
if(heap.size() == 1) {
return -1;
}

int a = heap.poll();
int b = heap.poll();

int result = a + (b * 2);

heap.offer(result);
cnt++;
}
return cnt;
}
}

heap.peek()
root return (제거 X)

heap.poll()
root return (제거 O)

heap.offer(int i)
i값 삽입