본문 바로가기
코딩테스트/프로그래머스 2단계

프로그래머스 2단계 - 더 맵게(힙)

by SICDev 2021. 9. 13.
반응형

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

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같

programmers.co.kr

 

 

import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
        int answer = 0;
        
        PriorityQueue<Integer> que = new PriorityQueue<>();
        
        //우선순위 큐에 넣는다.
        for(int scov : scoville){
            que.add(scov);
        }
        
        //첫번째 값(가장 낮은값)이 K값보다 작으면
        if(que.peek() < K){
            int sum = 0;
            //루프를 돌린다.
            while(!que.isEmpty()){
                if(que.size() == 1){
                    answer = -1;
                    break;
                } 
                int first = que.poll();
                int second = que.poll();
                sum = first+(second*2);
                que.add(sum);
                answer++;
                //첫번째 값이 K이상이면 루프를 나간다.
                if(que.peek() >= K){
                    break;
                }
            }
        }
        
        return answer;
    }
}

반응형