최대 1 분 소요

1️⃣ 문제

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


image


2️⃣ 코드

🔥 첫번째 시도 (시간 초과)

import sys

str = list(sys.stdin.readline().strip())
num = int(sys.stdin.readline())
cur = len(str)

for i in range(num):
    com = sys.stdin.readline()
    if 'L' in com:
        if(cur==0):
            continue
        else:
            cur-=1
    elif 'D' in com:
        if(len(str)==cur):
            continue
        else:
            cur+=1
    elif 'B' in com:
        if(cur==0):
            continue
        else:
            str.pop(cur-1)
            cur-=1
    elif 'P' in com:
        c,m = com.split()
        str.insert(cur, m)
        cur+=1

for i in str:
    print(i, end='')


🔥 두번째 시도

import sys

str = list(sys.stdin.readline().strip())
num = int(sys.stdin.readline())
str2 = []

for i in range(num):
    com = sys.stdin.readline()
    if 'L' in com:
        if str:
            str2.append(str.pop())
    elif 'D' in com:
        if str2:
            str.append(str2.pop())
    elif 'B' in com:
        if str:
            str.pop()
    elif 'P' in com:
        c,m = com.split()
        str.append(m)

str.extend(reversed(str2))
for i in str:
    print(i, end='')

댓글남기기