덱을 2개를 만든다.
하나는 비밀번호를 담아둘 덱이고, 나머지 하나는 화살표로 이동했을 경우 기존 비밀번호에서 pop하여 잠시 담아둘 덱이다.
패스워드는 스택형식으로 받고 화살표로 이동해서 비밀번호의 중간을 수정할 때를 위하여 잠시 담아두는 덱도 스택처럼 이용하였다.
도움되었던 반례 :
1
>>>ABC->>e<<<<-
from collections import deque
import sys
t = int(input())
for _ in range(t):
inn = sys.stdin.readline().strip()
pw_stack = deque()
move_buffer = deque()
for i in inn:
# print(i,pw_stack, move_buffer)
if i=='<':
if pw_stack:
move_buffer.append(pw_stack.pop())
elif i=='>':
if move_buffer:
pw_stack.append(move_buffer.pop())
elif i=='-':
if pw_stack:
pw_stack.pop()
else:
pw_stack.append(i)
result = ''
while pw_stack:
result+= pw_stack.popleft()
while move_buffer:
result+=move_buffer.pop()
print(result)
'백준' 카테고리의 다른 글
제로 - 10773번 (0) | 2022.11.08 |
---|---|
마인크래프트-18111번 (0) | 2022.11.08 |
절댓값 힙 - 11286번 (0) | 2022.10.31 |
후위 표기식 - 1918번 (0) | 2022.10.31 |
최대 힙 - 11279번 (0) | 2022.10.31 |
댓글