반응형
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

반응형
댓글