diff --git a/zeta_python/completed/33094.py b/zeta_python/completed/33094.py new file mode 100644 index 0000000..18a5372 --- /dev/null +++ b/zeta_python/completed/33094.py @@ -0,0 +1,58 @@ +import heapq + + +class DietPlan: + def __init__(self, n, m, k, p): + self.n: int = n + self.m: int = m + self.k: int = k + self.p: list[int] = p + + def solve(self) -> int: + now_remain = self.m + + D: list = [] + heapq.heapify(D) + + final_day = 0 + is_consume = False + is_finish = False + for i, p in enumerate(self.p): + is_consume = False + while now_remain - p < 0: + if self.k > 0: + # 쿠키 먹기 + if D: + tmp1 = -heapq.heappop(D) + tmp2 = p + if tmp1 <= tmp2: + p = 0 + is_consume = True + heapq.heappush(D, -tmp1) + else: + now_remain += tmp1 + else: + p = 0 + is_consume = True + self.k -= 1 + + else: + final_day = i + is_finish = True + break + else: + if not is_consume: + now_remain -= p + heapq.heappush(D, -p) + if is_finish: + break + else: + final_day = self.n + + return final_day + + +if __name__ == "__main__": + n, m, k = map(int, input().split()) + p = list(map(int, input().split())) + print(DietPlan(n, m, k, p).solve())