알고리즘/프로그래머스
[프로그래머스] 디스크 컨트롤러 (파이썬)
엉아_
2022. 1. 7. 19:48
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/42627
코딩테스트 연습 - 디스크 컨트롤러
하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를
programmers.co.kr
💡 풀이법
import heapq
def solution(jobs):
l = len(jobs)
heapq.heapify(jobs)
first = heapq.heappop(jobs)
time = first[0] + first[1]
answer = first[1]
while jobs:
ready = []
heapq.heapify(ready)
for i in jobs:
if time >= i[0]:
heapq.heappush(ready,i[::-1])
if ready == [] :
fast = heapq.heappop(jobs)
answer += fast[1]
time = fast[0] + fast[1]
else:
fast = heapq.heappop(ready)[::-1]
time += fast[1]
answer += time - fast[0]
jobs.remove(fast)
return answer // l