문제풀이/기타
* [파이썬] [힙] Pro 디스크 컨트롤러
승무_
2022. 2. 13. 17:57
문제
https://programmers.co.kr/learn/courses/30/lessons/42627?language=python3
코딩테스트 연습 - 디스크 컨트롤러
하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를
programmers.co.kr
코드
import heapq
def solution(jobs):
start=-1
answer,now,i=0,0,0
q=[]
while i<len(jobs):
# 현재 시점에서 처리할 수 있는 작업을 heap에 저장
for j in jobs:
if start<j[0]<=now:
heapq.heappush(q,(j[1],j[0]))
# 처리할 작업이 있는 경우
if len(q)>0:
cur=heapq.heappop(q)
start=now
now+=cur[0]
# 작업 요청시간부터 종료시간까지의 시간 계산
answer+= now-cur[1]
i+=1
# 처리할 작업이 없는 경우 다음 시간을 넘어감
else:
now+=1
return answer//len(jobs)