[BaekJoon, Python] 1406_에디터

최대 1 분 소요

1406_에디터

  • Code

    from sys import stdin
    stack_right = []
    first_sentence = stdin.readline().strip()
    stack_left = list(first_sentence)
    command_num = int(stdin.readline())
    for i in range(command_num):
        command = stdin.readline().strip().split()
        str = ""
        if command[0] == 'P':
            str = command[1]
            stack_left.append(str)
        elif command[0] == 'L' and len(stack_left) != 0:
            stack_right.append(stack_left.pop())
        elif command[0] == 'D' and len(stack_right) != 0:
            stack_left.append(stack_right.pop())
        elif command[0] == 'B' and len(stack_left) != 0:
            stack_left.pop()
    print(''.join(stack_left),end='')
    print(''.join(stack_right[::-1]),end='')
    
  • KeyPoint

    • input() 대신 sys.stdin.readline() 사용.

    • stack 2개를 사용해서 마우스 커서를 기준으로 왼쪽 스택, 오른쪽 스택을 사용. 오른쪽 스택은 반대로 기울여놓고 사용한다고 생각.

  • 기억할 점

    • input() 보다는 sys.stdin.readline()이 더 빠르다.

    • 빈 리스트에 append를 사용해서 추가하는 것 보다는, 리스트를 사용할만큼 미리 초기화해두고 값을 대입하는게 더 빠르다.

댓글남기기