1406문제와 유사하다.
스택 2개를 두고 (나는 스택 1개와 큐 1개를 두었다) 명령어에 대한 처리를 해주면 된다.
'<'가 들어오면 커서가 왼쪽으로 이동하니 왼쪽 스택의 마지막 값을 오른쪽 스택에 넣는다.
'>'가 들오오면 커서가 오른쪽으로 이동하니 오른쪽 스택의 맨 앞 값을 왼쪽 스택에 넣는다.
'-'가 들어오면 커서 기준 왼쪽 글자가 삭제되니 왼쪽 스택의 마지막 값을 삭제한다.
그외의 값은 왼쪽 스택에 추가한다.
(삭제 연산은 모두 스택이 비어있는지 확인 후 해야한다)
from collections import deque
T = int(input())
for _ in range(T):
L = deque()
R = deque()
keyloger = input()
for ch in keyloger:
if ch == '<' and L:
R.appendleft(L.pop())
elif ch == '>' and R:
L.append(R.popleft())
elif ch == '-' and L:
L.pop()
elif ch != '<' and ch!= '>' and ch != '-':
L.append(ch)
for ch in L:
print(ch, end='')
for ch in R:
print(ch, end='')
print()