문제:https://www.acmicpc.net/problem/3190
처음에는 단순히 R들어오면 reverse, D들어오면 pop(0)을 해주었음, 이런문제는 보통 deque를 사용하면 수월하게 풀 수 있지만 리스트를 사용해도 가능할거 같아서 그냥 리스트만 활용하여 문제를 풀어주었음
결과는 당연히 시간초과.
reverse함수를 R이 들어올때마다 호출하게 되면 시간복잡도가 어마어마하게 늘어난다. 이를 해결하려면 n변수를 잘 활용해 주어야함. isreverse 변수와 연계하여 뒤집어졌을때 포인터는 n-1, 뒤집어지지 않았을때 포인터는 0을 향하게 하여 reverse 계산.
answer=[]
T=int(input())
for i in range(T): #100
error=False
isreverse=False
p=input()
start=0
n=int(input()) # n은 왜있는걸까
lst=input()
lst=lst[1:len(lst)-1]
if n!=0:
lst=list(map(int, lst.split(',')))
else:
lst=[]
for f in p:
if f=='R':
if isreverse:
isreverse=False
start=0
else:
isreverse=True
start=n-1
else:
if n<=0:
error=True
break
else:
if isreverse:
lst.pop(start)
start-=1
n-=1
else:
lst.pop(start)
n-=1
if error:
answer.append('error')
else:
if isreverse:
lst.reverse()
answer.append(lst)
for a in answer:
print(a)