Introfor

[백준] 1406번 에디터 본문

Programming_prob/BaekJoon

[백준] 1406번 에디터

YongArtist 2020. 9. 11. 20:22
from sys import stdin


if __name__ == '__main__':
    l_stack = list(stdin.readline().rstrip())
    r_stack = []
    cnt = int(stdin.readline())

    for cmd in stdin:
        if cmd[0] == 'L' and l_stack:
            r_stack.append(l_stack.pop())

        if cmd[0] == 'D' and r_stack:
            l_stack.append(r_stack.pop())

        if cmd[0] == 'B' and l_stack:
            l_stack.pop()

        if cmd[0] == 'P':
            l_stack.append(cmd[2])

    print(''.join(l_stack+r_stack[::-1]))

백준 강의 리스트를 보고 이 부분이 스택을 활용하는 부분이라는 걸 알지 못했다면, 아마 리스트나 문자열의 슬라이스로 풀었을 것이다.

그리고 이 문제는 제한시간이 파이썬으로 0.3s이기 때문에 시간복잡도 측면에서 리스트를 활용할 시에 대한 내용을 살펴보아야 한다. 이와 관련된 내용은 아래 래퍼런스를 참조했다.

한글 버전 : wayhome25.github.io/python/2017/06/14/time-complexity/

영어 버전 : www.ics.uci.edu/~pattis/ICS-33/lectures/complexitypython.txt

'Programming_prob > BaekJoon' 카테고리의 다른 글

[백준] 9093번 단어 뒤집기  (0) 2020.09.13
[백준] 10845번 큐  (0) 2020.09.12
[백준]1872번 스택 수열  (0) 2020.09.11
[백준] 9093번 stack  (0) 2020.09.09
[백준] 10953번 / A+B - 6  (0) 2020.07.03
Comments