Algorithms/Heap

Programmers - 라면공장 [파이썬]

Louisus 2020. 5. 13. 21:14
728x90

출처:

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

 

프로그래머스

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

programmers.co.kr

라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다.

 

stock 값을 빼는 것이 아님!! 최대 공급량을 가진 날짜 순으로 공급을 받아야 함!

 

-----------

 

import heapq

 

def solution(stock, dates, supplies, k):

    answer = 0

    idx = 0

    heap = []

 

    while stock < k:

        for i in range(idx, len(dates)):

            # 바닥나는 경우X

            if stock < dates[i]:

                break

            heapq.heappush(heap,-supplies[i])

            idx = i + 1

        stock += heapq.heappop(heap)*(-1)

        answer += 1

    return answer