제목 그대로 문제가 진짜 AC다..
내가 백준을 싫어하는 이유 중 하나가 괜히 입/출력에 장난질을 해놔서 로직을 잘 짜더라도 틀리는 경우가 생긴다.
프로그래머스처럼 입/출력 신경 안쓰고 로직만 신경쓰게 해주면 참 좋을텐데 왜 이러는지 모르겠다.
일단 이 문제에서 중요한 것은 R 명령어가 나왔을 때, reverse()를 써서 뒤집으면 안된다.
실제 뒤집는 것이 아닌, deque의 성질과 flag를 이용해 가짜로 뒤집힌 척만 하는 것이다.
deque은 왼쪽에서도 뺄 수 있고, 오른쪽에서도 뺄 수 있어서 안뒤집혀있는 flag이면 popleft를, 뒤집혀져 있는 상태라면 pop을 해서 D 명령을 수행하면 된다.
import sys
from collections import deque
T = int(sys.stdin.readline())
for i in range(T):
command = sys.stdin.readline().rstrip()
ls_len = int(sys.stdin.readline())
input_ls = sys.stdin.readline().rstrip().split(',')
ls = []
for w in input_ls:
temp = ""
for j in w:
if j != "[" and j != "," and j != "]":
temp += j
if temp:
ls.append(int(temp))
ls = deque(ls)
flag = 1 # 1은 정방향, 0은 반대
for word in command:
if word == "R":
if flag:
flag = 0
else:
flag = 1
else:
if ls:
if flag:
ls.popleft()
else:
ls.pop()
else:
print("error")
break
else:
if not flag:
ls.reverse()
print('['+','.join(map(str, ls))+']')