문제
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)
'문제풀이 > 기타' 카테고리의 다른 글
[파이썬] [Two] Pro 보석 쇼핑 (0) | 2022.02.22 |
---|---|
* [파이썬] [완전탐색] Pro 소수 찾기 (0) | 2022.02.15 |
[파이썬] [힙] Pro 이중우선순위큐 (0) | 2022.02.13 |
[파이썬] [힙] Pro 더 맵게 (0) | 2022.02.12 |
* [파이썬] [스택/큐] Pro 주식가격 (0) | 2022.02.11 |