두개의 stack을 활용함.
- 그냥 문자열일 경우 stack1에 넣어 줌.
- 좌측 or 우측 화살표가 입력될 시, 각 stack이 비어있지 않은 경우에만 좌측의 경우 stack1 -> stack2, 우측의 경우 stack2 -> stack1 으로 옮겨줌.
- stack2의 경우 반대로 정렬되기 때문에 뒤집어줘서 return함.
import sys
def solution() :
t = int(sys.stdin.readline())
for _ in range(t) :
l = sys.stdin.readline().rstrip()
stack1 = []
stack2 = []
for s in l :
if s == '<' :
if stack1 :
stack2.append(stack1.pop())
elif s == '>' :
if stack2 :
stack1.append(stack2.pop())
elif s == '-' :
if stack1 :
stack1.pop()
else :
stack1.append(s)
print(''.join(stack1) + ''.join(stack2)[::-1])
solution()