[프로그래머스] 라면공장

2020. 3. 31. 16:42프로그래머스/LEVEL 2

import java.util.*;

class Solution {
    public int solution(int stock, int[] dates, int[] supplies, int k) {
        int answer = 0;
        int total = k-stock; //더 빌려야할 밀가루양
        int day = 0; //몇일째인지
        int i = 0; //빌릴 수 있는 날
        PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
        
        while(total>0){
            day ++; 
            stock--;
            
            if(i<dates.length && day == dates[i]){
                pq.offer(supplies[i]);
                i++;
            }
            
            if(stock==0){
                stock = pq.poll();
                total -= stock;
                answer++;
            }
        }
        
        return answer;
    }
}

 

가진 밀가루가 0이 되는 시점(day)에  그전에 빌릴 수 있는 것들중 가장 많은양을 빌려야 한다.