Lewis's Tech Keep

[프로그래머스] 더 맵게 본문

Java/알고리즘

[프로그래머스] 더 맵게

Lewis Seo 2021. 2. 14. 15:58

- 기본 힙 이용해서 풀어나가는 문제

- 힙 구조에 문제에 나온 설명 그대로 따라가면 끝.

더보기
import java.util.*;
class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();
        for(int sNum: scoville) {
            minHeap.add(sNum);
        }
        while( minHeap.size() > 1 && K > minHeap.peek()) {
            Integer leastHotNum = minHeap.poll();
            Integer secondHotNum = minHeap.poll();
            Integer newHot = leastHotNum + (secondHotNum * 2);
            if(newHot == 0) {
                answer = -1;
                break;
            }
            minHeap.add(newHot);
            answer++;
        }
        if(K > minHeap.peek()) {
            answer = -1;
        }
        return answer;
    }
}
Comments