https://programmers.co.kr/learn/courses/30/lessons/42626#
heap과 관련한 문제를 풀어보았습니다. 개념에 대한 공부를 먼저 하고 우선순위 큐라는 자료구조를 미리 알았기 때문에 쉽게 풀 수 있었습니다.
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
int answer = 0;
int temp = 0;
PriorityQueue<Integer> heap = new PriorityQueue<>();
for(int i: scoville){
heap.offer(i);
}
while(true){
if(heap.peek() >= K)
break;
if(heap.peek() == 0 || heap.size() == 1){
return -1;
}
int min = heap.poll();
int second = heap.poll();
temp = min+ 2*second;
heap.offer(temp);
answer++;
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 - 스킬트리(정답) (0) | 2020.03.21 |
---|---|
프로그래머스 - 스킬트리(틀림) (1) | 2020.03.19 |
프로그래머스(Level2) - 가장 큰 수 (0) | 2020.03.15 |
프로그래머스 - 다리를 지나는 트럭 (2) | 2020.03.14 |
프로그래머스 - 주식가격 (0) | 2020.03.08 |