고려해야 할 것
리스트에서 [1,2,3,4] 이렇게 있을 때, deque에 값을 넣으면 []와 , 이거까지 함께 들어가지기 때문에 arr[1:-1].split(',')를 통해서 제거하여 값만 넣게 해야한다.
또한 deque는 [] 빈 배열도 원소가 있다고 쳐서 초기화를 해줘야 한다.
문제를 처음 봤을 때, 뒤집기는 reverse()를 쓰면 될거 같다 생각했는데, 코테스터디를 하면서 이게 시간을 많이 잡아 먹는다고 한걸 들었어서 어떻게 해야할지 고민을 좀 했었다. 하나하나 넘기는 것도 당연 오래 걸릴거 같고... 그러다가 어차피 R이 두번 나오면 그대로니까 R이 나오는 횟수를 저장해놨다가 마지막에 한번만 뒤집기를 해주면 될거 같았다.
그리고 D일 때, 원소가 없으면 error를 출력하고, 뒤집기를 바로 안하니까 flag를 사용해서 그대로이면 왼쪽 첫번째 원소를 빼고 뒤집는거면 오른쪽 원소를 빼면 된다.
import sys
from collections import deque
input = sys.stdin.readline
t = int(input())
for i in range(t):
fun = input()
n = int(input())
arr = input().strip()
q = deque(arr[1:-1].split(',')) # [1,2,3,4]에서 []와 ,를 제거하고 넣기 위함
flag = 0
if n == 0:
q = deque()
for i in fun:
if i == 'R':
flag += 1
elif i == 'D':
if not q:
print('error')
break
elif flag % 2 == 0:
q.popleft()
else:
q.pop()
else:
if flag % 2 == 1:
q.reverse()
print('[' + ','.join(q) +']')
어렵다 어려워,,,,ㅠㅠ