본문 바로가기

알고리즘/프로그래머스(Python)

큐 - 프린터 / 파이썬

from collections import deque

def solution(priorities, location):
    lst = [i for i in range(len(priorities))]
    pri = deque(priorities)
    loc = deque(lst)
    answer = 0
    while True:
        front = pri.popleft()
        l = loc.popleft()
        if pri and front < max(pri):
            pri.append(front)
            loc.append(l)
        else:
            answer += 1
            if l == location:
                break
    return answer

 

다른 풀이

def solution(priorities, location):
  answer = 0
  from collections import deque

  d = deque([(v,i) for i,v in enumerate(priorities)])

  while len(d):
      item = d.popleft()
      if d and max(d)[0] > item[0]:
          d.append(item)
      else:
          answer += 1
          if item[1] == location:
              break
  return answe

 

programmers.co.kr/learn/courses/30/lessons/42587#

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr