PS

[백준/Python] (S2) 에디터 - 1406

MSHUN 2024. 3. 10.
반응형

Baekjoon Online Judge의 1406 에디터 문제의 Python 풀이입니다.

 

1406번: 에디터

첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수

www.acmicpc.net

💻코드

import sys
from collections import deque
input = sys.stdin.readline

# 커서 왼쪽에 있는 문자들을 저장할 덱
left = deque(input().strip())

# 커서 오른쪽에 있는 문자들을 저장할 덱
right = deque()

n = int(input())

for _ in range(n):
    command = input().split()
    
    # 'P x' 명령어: x 문자를 커서 왼쪽에 추가
    if command[0] == 'P':
        left.append(command[1])
    # 'L' 명령어: 커서를 왼쪽으로 한 칸 이동 (왼쪽 덱이 비어있지 않은 경우)
    elif command[0] == 'L' and left:
        right.appendleft(left.pop())
    # 'D' 명령어: 커서를 오른쪽으로 한 칸 이동 (오른쪽 덱이 비어있지 않은 경우)
    elif command[0] == 'D' and right:
        left.append(right.popleft())
    # 'B' 명령어: 커서 왼쪽의 문자 삭제 (왼쪽 덱이 비어있지 않은 경우)
    elif command[0] == 'B' and left:
        left.pop()

# 최종 문자열 출력: 커서 왼쪽 문자들과 오른쪽 문자들을 합친 후 출력
print(''.join(left) + ''.join(right))

🧠풀이

deque 사용해서 풀기.

🤔느낀 점

dequeeeee

Baekjoon Online Judge

반응형

댓글