처음에 배열로 시도를 했으나 효율성 테스트에서 통과하지 못하고
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 |