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