백준 1406 파이썬 (에디터)

철웅·2022년 10월 1일
0

BOJ

목록 보기
4/46

문제 : https://www.acmicpc.net/problem/1406

커서를 left_stack과 right_stack 사이에 있다고 가정하고 문제를 풀었다.


💻 Code

import sys

precon = sys.stdin.readline().rstrip()
n = int(sys.stdin.readline())
l_stack = []
r_stack = []

for i in precon:
    l_stack.append(i)

for i in range(n):
    command = sys.stdin.readline().split()
    
    if(command[0] == 'L'):
        if(not l_stack):
            pass
        else:
            r_stack.append(l_stack.pop())
    elif(command[0] == 'D'):
        if(not r_stack):
            pass
        else:
            l_stack.append(r_stack.pop())
    elif(command[0] == 'B'):
        if(not l_stack):
            pass
        else:
            l_stack.pop()
    elif(command[0] == 'P'):
        l_stack.append(command[1])

print("".join(l_stack + list(reversed(r_stack))))

  • 입력받을 때 rstrip()
    이 없다면 개행문자가 포함된다. (위 rstrip X, 아래 rstrip O)
  • join() : 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환해주는 함수이다.
    - '구분자'.join(리스트) 형식으로 사용된다.
    - ex) '_'.join(['a', 'b', 'c']) -> a_b_c

0개의 댓글