[알고리즘/백준] 1406: 에디터(python)
처음에는 커서의 위치를 숫자로 주면서 계속 변화시켰다. 그랬더니 시간 초과가 나버린... 고민고민하다가 스택 두개로 구현하면 될 것 같아서 해보았다. 스택을 두 개 준비하고 그 사이에 커서가 있다고 생각한다. 왼쪽으로 커서를 옮기면 왼쪽 스택에서 pop을 하고 오른쪽 스택에 append를 해준다... 이런 식으로 하면 풀린다!! 마지막에 합치는 건 오른쪽 스택을 뒤집어 줘야 한다.
from sys import stdin
stack1 = list(map(str, stdin.readline().strip()))
stack2 = []
for _ in range(int(stdin.readline().strip())):
a = list(stdin.readline().strip().split())
if a[0] == 'L':
if stack1:
stack2.append(stack1.pop())
elif a[0] == 'D':
if stack2:
stack1.append(stack2.pop())
elif a[0] == 'B':
if stack1:
stack1.pop()
else:
stack1.append(a[1])
stack1.extend(reversed(stack2))
print(''.join(stack1))
Author And Source
이 문제에 관하여([알고리즘/백준] 1406: 에디터(python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y7y1h13/알고리즘백준-1406-에디터python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)