백준 5397: 문제링크

  • 문제유형 :

  • 설명

    1. 스택을 두 개 생성하고, 스택 두 개의 중앙을 커서라고 생각한다.

    2. 문자 입력: 왼쪽 스택에 삽입

    3. ‘-‘ 입력 : 왼쪽 스택에서 삭제

    4. ‘<’ 입력 : 왼쪽 스택에서 오른쪽 스택으로 이동

    5. ‘>’ 입력 : 오른쪽 스택에서 왼쪽 스택으로 이동

  • 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    test_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))