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
반응형