[Programmers] Level 2. 프린터

Seo Seung Woo·2022년 7월 26일
0
post-thumbnail

Level 2. 프린터


❔Thinking

  • 대기열에 있는 우선순위대로 프린트한다.
  • 우선순위에 해당하지 않는 문서는 제일 마지막으로 뺸다.
  • location에 해당하는 문서가 출력되는 순서를 구한다.

💻Solution

  1. deque
from collections import deque
def solution(priorities, location):
    order_list = deque(priorities)
    cur = location
    print_cnt = 0
    while cur >= 0:
        if order_list[0] >= max(order_list):
            order_list.popleft()
            cur -= 1
            print_cnt += 1
        else:
            order_list.rotate(-1)
            if cur == 0:
                cur = len(order_list) - 1
            else:
                cur -= 1
    return print_cnt

🗝️keypoint

  • deque.rotate()는 양수는 오른쪽으로, 음수는 왼쪽으로 리스트를 회전한다.
    a = deque([1,2,3,4])
    a.rotate(1) # [4,1,2,3]
    a.rotate(-1) # [2,3,4,1]
  • deque는 list[start:end] 형식의 slice가 불가능하다.
profile
Code for people

0개의 댓글