50%, 75% 까지 가다가 틈틈이 계속 틀렸는데 그 이유가 빈 큐가 됐을 경우의 조건을 제대로 구현하지 않아서였다 ㅠ 이것 때문에 계속 인내심의 한계를 느낌
1) 처음에 [] 이렇게 들어왔더라도, D가 아니라 R만 계속 주어진다면 error가 아닌 []를 반환해야 함.
2) [1,2] 이런 큐가 있을 때 DD 가 주어진다면 에러가 아니라 []를 반환해야 함.
이런 조건들에 대해 더 꼼꼼히 살피자!!
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 26 11:51:02 2021
@author: 82103
"""
from collections import deque
def AC(a, rev, com,e): # 배열, 리버스스위치, 명령어
if com == 'R': # 리버스
if rev == True:
rev = False
else:
rev = True
else: # 삭제
if len(a) == 0: # 삭제 불가
print('error')
e = True
else:
if rev == False:
a.popleft()
else:
a.pop()
return a, rev, e
T = int(input())
for i in range(T):
rev = False # 초기화
p = list(input().rstrip())
n = int(input())
a = input().rstrip()
e = False
if n == 0:
a = deque([])
else:
a = deque(list(map(int, a[1:-1].split(','))))
for j in range(len(p)):
a, rev,e = AC(a, rev, p[j],e)
if e:
break
if e == False:
if rev == False:
a = list(a)
print('['+','.join(map(str,a))+']')
else:
a = list(reversed(a))
print('['+','.join(map(str,a))+']')