본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] 디스크 컨트롤러

728x90

 

 

나의 풀이 

import heapq

def solution(jobs):
    jobs.sort()
    time, total, number = 0, 0, len(jobs)
    waiting = []

    while jobs or waiting:
        while jobs and jobs[0][0] <= time:
            heapq.heappush(waiting, (jobs[0][1], jobs[0][0]))
            jobs.pop(0)
        if waiting:
            time += waiting[0][0]
            total += time - heapq.heappop(waiting)[1]
        else:
            time += 1

    return total // number

 

 

 

deque를 이용한 풀이

import heapq

def solution(jobs):
    jobs.sort()
    time, total, number = 0, 0, len(jobs)
    waiting = []

    while jobs or waiting:
        while jobs and jobs[0][0] <= time:
            heapq.heappush(waiting, (jobs[0][1], jobs[0][0]))
            jobs.pop(0)
        if waiting:
            time += waiting[0][0]
            total += time - heapq.heappop(waiting)[1]
        else:
            time += 1

    return total // number
반응형