Coding - Algo/python
[프로그래머스] 디스크 컨트롤러 (python 파이썬)
jainn
2021. 6. 17. 23:32
728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/42627
코딩테스트 연습 - 디스크 컨트롤러
하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를
programmers.co.kr
풀이 및 소스코드
시점을 나눠 그때마다 힙큐에 넣는 것이 중요한 문제이다.
import heapq
def solution(jobs):
answer = 0
end, i = 0, 0
start = -1
hq = []
while len(jobs)>i:
for job in jobs:
if start<job[0]<=end:
heapq.heappush(hq, (job[1], job[0]))
if len(hq)>0:
now = heapq.heappop(hq)
start = end
end += now[0]
answer += (end-now[1])
i += 1
else:
end+=1
answer = answer//len(jobs)
return answer
반응형