프로그래머스 문제 풀이 - PCCP 모의고사 #2
문제 확인 🏃
[5, 12, 30], [1, 2, 0, 1], 10
>> 3
[5, 12, 30], [2, 1, 0, 0, 0, 1, 0], 10
>> 4
[5], [0, 0, 0, 0, 0], 5
>> 1
[5, 6, 7, 11], [1, 2, 3, 3, 2, 1, 1], 10
>> 2
def solution(menu, order, k):
answer = 0
client = []
start, end = -k, 0
for idx in range(len(order)):
start += k
end = (start if end < start else end) + menu[order[idx]]
client.append(end)
count = 1
for jdx in range(idx):
if start < client[jdx]:
count += 1
answer = max(answer, count)
return answer

import heapq
def solution(menu, order, k):
answer = 1
start, end = -k, 0
queue = []
for idx in range(len(order)):
start += k
end = (start if end < start else end) + menu[order[idx]]
heapq.heappush(queue, end)
while queue:
now = heapq.heappop(queue)
if start < now:
heapq.heappush(queue, now)
break
answer = max(answer, len(queue))
return answer

import heapq
def solution(menu, order, k):
answer = 1
start, end = -k, 0
queue = []
for o in order:
start += k
end = (start if end < start else end) + menu[o]
heapq.heappush(queue, end)
while queue:
now = heapq.heappop(queue)
if start < now:
heapq.heappush(queue, now)
break
answer = max(answer, len(queue))
return answer

너무 느리니 다른 방식이 필요해 -> 해결 😁