import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int i=0;i<scoville.length;i++){
pq.add(scoville[i]);
}
while(pq.peek() < K){
if(pq.size() < 2) return -1;
int first = pq.poll();
int second = pq.poll();
pq.add(first + (second*2));
answer++;
}
return answer;
}
}
PriorityQueue를 이용하여 쉽게 풀었다.
최대/최소값을 이용한 문제에서는 우선순위큐의 사용을 고려해보면서 풀어야 한다고 생각한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[99클럽 코테 스터디] 14일차 TIL - 이분탐색 (1) | 2024.08.04 |
---|---|
[99클럽 코테 스터디] 11일차 TIL - 카드 뭉치 (0) | 2024.08.01 |
99클럽 코테 스터디 8일차 TIL - 기능개발 (0) | 2024.07.29 |
99클럽 코테 스터디 7일차 TIL - 하노이탑 (0) | 2024.07.28 |
선택 안됨 99클럽 코테 스터디 6일차 TIL - 의상 (0) | 2024.07.27 |