heap
에 추가heap
이 존재 하는 경우 해당 작업의 소요시간을 정답에 추가하고, 전체 시간 및 마지막 작업 시간을 갱신heap
에 추가된 값이 없다면 전체 시간을 한 칸 이동📌 전체 작업을 작업처리 시간을 기준으로 heap
에 추가한 뒤 작업을 처리했을 때는 시간초과
📌 갱신해야하는 데이터와 처리해줘야할 조건이 많아 생각보다 까다로웠던 문제
import heapq
def solution(jobs):
answer = 0
N = len(jobs)
heap = []
time, last, cnt = 0, -1, 0
while cnt < N:
for start, during in jobs:
if last < start <= time:
heapq.heappush(heap, (during, start))
if len(heap) > 0:
during, start = heapq.heappop(heap)
last = time
time += during
answer += (time - start)
cnt += 1
else:
time += 1
answer //= N
return answer