리스트 대신 deque를 사용해서 해결할 수 있었다
reverse를 할 때마다 deque를 뒤집어야 해서 시간초과가 났었는데,
reverse를 매번 실행하지 않고 뒤집는 횟수를 기억해두었다가 뒤집는 횟수가 홀수일 때만 뒤집으면 시간을 줄일 수 있었다
(짝수번을 뒤집게 되면 안 뒤집는 상황이랑 똑같기 때문)
소스 코드
import sys
from collections import deque
t = int(input())
for i in range(t):
p = sys.stdin.readline().rstrip()
n = int(input())
arr = sys.stdin.readline().rstrip()[1:-1].split(",")
queue = deque(arr)
rev, front, back = 0, 0, len(queue)-1
flag = 0
if n == 0:
queue = []
front = 0
back = 0
for j in p:
if j == 'R':
rev += 1
elif j == 'D':
if len(queue) < 1:
flag = 1
print("error")
break
else:
if rev % 2 == 0:
queue.popleft()
else:
queue.pop()
if flag == 0:
if rev % 2 == 0:
print("[" + ",".join(queue) + "]")
else:
queue.reverse()
print("[" + ",".join(queue) + "]")