‡ CODING TEST STUDY ‡/º 프로그래머스

[프로그래머스 | Java Lv.2] [복습] 더 맵게 (힙 Heap)

Trudy | 송연 2024. 6. 10. 15:20

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42626

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


접근

시간차를 얼마 두지 않고 복습한거라 큰 어려움 없이 풀었던 문제!

 

최종 코드

package week6.baek.heap;

import java.util.Comparator;
import java.util.PriorityQueue;

public class MoreSpicy {

    public static int solution(int[] scoville, int K) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        for (int x : scoville) {
            pq.add(x);
        }

        int count = 0;
        while(pq.peek() < K){
            if(pq.size() == 1){
                return -1;
            }

            int n = pq.poll();
            int m = pq.poll();
            pq.add(n + m *2);
            count++;
        }
        return count;
    }

    public static void main(String[] args) {
        int[] scoville = { 1, 2, 3, 9, 10, 12};
        int K = 7;
        System.out.println(solution(scoville, K));
    }
}