여름의 서재
[프로그래머스] 디스크 컨트롤러 (파이썬) 본문
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
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 오픈 채팅방 (파이썬) (0) | 2022.01.07 |
---|---|
[프로그래머스] 보석 쇼핑 (파이썬) (0) | 2022.01.07 |
[프로그래머스] 표편집 (파이썬) (0) | 2022.01.07 |
[프로그래머스] 야근 지수 (파이썬) (0) | 2021.12.24 |
[프로그래머스] N으로 표현 (파이썬) (0) | 2021.12.24 |
Comments