[Programmers] 더 맵게

HyeBin, Park·2021년 7월 21일
0

Programmers

목록 보기
22/26
post-thumbnail

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

📒 문제

📒 제한 사항

💡 코드

import java.util.*;

class Solution {
    public int solution(int[] scoville, int K) {
    
        int answer = 1;
        // 우선순위큐 사용 
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        
        for (int i : scoville) {
            pq.add(i);
        }
        
        heap.add(pq.poll() + pq.poll() * 2);
        
        while (true) {
            
            if (pq.peek() >= K) break; // 제일 작은 값이 K와 크거나 같을 경우 break;
            
            // 모든 스코빌 지수가 K 보다 작을 경우 answer = -1;
            else if (pq.peek()<K && pq.size() < 2) {
                answer = -1;
                break;
            }
            answer++;
            pq.add(pq.poll() + pq.poll() * 2);
        }

        return answer;
    }
}

💡 정리하기

👉 우선순위큐를 사용하기 전에는 효율성 테스트에 전부 실패했는데 우선순위큐를 사용하니까 통과할 수 있었다.

0개의 댓글