키로거
백준 5397: 문제링크
문제유형 :
설명
스택을 두 개 생성하고, 스택 두 개의 중앙을 커서라고 생각한다.
문자 입력: 왼쪽 스택에 삽입
‘-‘ 입력 : 왼쪽 스택에서 삭제
‘<’ 입력 : 왼쪽 스택에서 오른쪽 스택으로 이동
‘>’ 입력 : 오른쪽 스택에서 왼쪽 스택으로 이동
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20test_case = int(input())
for _ in range(test_case):
left_stack = []
right_stack = []
data = input()
for i in data:
if i == '-':
if left_stack:
left_stack.pop()
elif i == '<':
if left_stack:
right_stack.append(left_stack.pop())
elif i == '>':
if right_stack:
left_stack.append(right_stack.pop())
else:
left_stack.append(i)
left_stack.extend(reversed(right_stack))
print(''.join(left_stack))