코테 대비 python/백준
1966 프린터 큐
ylab
2023. 4. 10. 22:59
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
from collections import deque
T=int(input())
for _ in range(T):
n,m = map(int,input().split())
w = list(map(int,input().split()))
que=[0]*n
index=[0]*n
cnt=0
#순서와 가중치 저장
for i in range(len(w)):
que[i] = w[i]
index[i] = i
#popleft쓰려고 덱으로 변환
q = deque(que)
idx = deque(index)
# 만약 왼쪽값이 크다면 그냥 출력
while q:
if q[0] >= max(q):
q.popleft()
a=idx.popleft()
cnt+=1
if a==m:
print(cnt)
# 만약 왼쪽게 작다면 뽑고 뒤로 어팬드
elif q[0] < max(q):
b=q.popleft()
q.append(b)
c=idx.popleft()
idx.append(c)