1966번 - 프린터 큐

import sys
from collections import deque
input = sys.stdin.readline
N = int(input())
for i in range(N):
n, m = map(int, input().split(' '))
printer = list(map(int, input().split(' ')))
q = deque(printer)
count = 0
index = deque([i for i in range(n)])
while q:
doc = q[0]
if doc == max(q):
count += 1
if index[0] == m:
print(count)
break
else:
q.popleft()
index.popleft()
else:
q.append(q.popleft())
index.append(index.popleft())
1021번 - 회전하는 큐

import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split(' '))
q = deque([i for i in range(1, n+1)])
numbers = list(map(int, input().split(' ')))
index = 0
count = 0
for target in numbers:
if q[0] == target:
q.popleft()
else:
if list(q).index(target) < len(q)/2:
while q[0] != target:
q.append(q.popleft())
count += 1
q.popleft()
else:
while q[0] != target:
q.appendleft(q.pop())
count += 1
q.popleft()
print(count)
5430번 - AC

from collections import deque
import sys
input = sys.stdin.readline
N = int(input())
for n in range(N):
commands = list(input())
count = int(input())
error_flag = 0
reverse_flag = 0
q = deque(input().rstrip()[1:-1].split(','))
if count == 0:
q = []
for command in commands:
if command == 'R':
reverse_flag += 1
elif command == 'D':
if len(q) > 0:
if reverse_flag % 2 == 1:
q.pop()
else:
q.popleft()
else:
error_flag = 1
print('error')
break
else:
if reverse_flag % 2 == 1:
q.reverse()
print('[' + ','.join(q) + ']')