본문 바로가기

백준

[백준] 1966번: 프린터 큐(파이썬)

https://www.acmicpc.net/problem/1966

 

1966번: 프린터 큐

여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에

www.acmicpc.net

한번에 성공~

import sys
from collections import deque
num = int(sys.stdin.readline())
result = []

for i in range(num):
  ent, target = map(int,sys.stdin.readline().split())
  que = list(sys.stdin.readline().rsplit())
  que = deque(que)
  count = 0
  while True:
    #print(que)
    #print(f"target:{target}")
    if que[0] == max(que):
      count += 1
      if target == 0:
        result.append(count)
        break
      else:
        target -= 1
        que.popleft()
    else:
      que.rotate(-1)
      target-=1
      if target<0:
        target=len(que)-1

#print(result)
for i in result:
  print(i)

 

문제 조건을 보고 정확히 구현하면 되는 문제였다.

한번에 풀긴 했지만 테스트 케이스를 작성하면서 해서 시간이 꽤 많이 걸렸던 것 같다.

단기적인 목표는

1. 문제 푸는 시간 단축하기

2. 시간 초과 생각하면서 문제풀기

로 해야겠다.

 

이제 Class 2도 슬슬 끝나간다.. 좀만 더 파이팅하자