import sys
input = sys.stdin.readline
for _ in range(int(input())) :
left_stk = []
right_stk = []
key_press = input().strip()
for key in key_press :
if key == '<' :
if left_stk :
right_stk.append(left_stk.pop())
elif key == '>' :
if right_stk :
left_stk.append(right_stk.pop())
elif key == '-' :
if left_stk :
left_stk.pop()
else :
left_stk.append(key)
left_stk.extend(reversed(right_stk))
print(''.join(left_stk))
2개의 스택을 이용해서 해결했다.
<키가 나오면 오른쪽에 있는 문자를 pop해서 왼쪽에 있는 문자에 push 했고, >키가 나오면 반대로 해결했다.
-키가 나오면 왼쪽에 있는 문자를 pop해서 버렸고, 이 외의 문자는 왼쪽에 push해주었다.
그리고 오른쪽에 있는 문자는 반대로 되어 있으므로 왼쪽에 추가할때는 reverse 해주고 출력해주었다.
'프로그램 > 코딩테스트' 카테고리의 다른 글
백준 2075 N번째 큰 수 (0) | 2022.06.13 |
---|---|
백준 1935 후위 표기식2 (0) | 2022.06.13 |
백준 7785 회사에 있는 사람 (0) | 2022.06.13 |
백준 1302 베스트셀러 (0) | 2022.06.13 |
백준 11286 절댓값 힙 (0) | 2022.06.13 |
댓글