BOJ

[백준/BOJ] python 1406번 에디터

kyj0015 2023. 8. 10. 23:38

언어: python

번호: 1406

제목:에디터

등급: 실버 2

풀이 과정:

원래는 리스트 하나를 만들어 풀려했지만 시간이 초과되서 스택 2개를 만들어 풀었다. 커서의 위치를 기준으로 왼쪽 리스트(s1)과 오른쪽 리스트(s2)를 만들어 명령에 맞게 pop()함수를 사용했다.

내 코드:

import sys
INPUT = sys.stdin.readline

s1 = list(INPUT())
s2 = []
n = int(INPUT())

for _ in range(n):
    command = list(INPUT().split())

    if command[0]=='L':
        if s1:
            s2.append(s1.pop())
    elif command[0]=='D':
        if s2:
            s1.append(s2.pop())
    elif command[0]=='B':
        if s1:
            s1.pop()
    else:
        s1.append(command[1])

print(''.join(s1), end='')
print(''.join(reversed(s2)))

 

메모:

리스트의 0번째 요소를 반환하고 출력할때 leftpop()함수를 사용하는 방법도 있다.