백준-1406

이서현·2021년 4월 18일
0

Algorithm

목록 보기
4/76

에디터
04.14에 푼 문제입니당🌷

결과는 잘 나오지만 insert()를 사용하면 시간초과가 발생한다.

#https://www.acmicpc.net/problem/1406
#시간 초과
import sys
import time
input=sys.stdin.readline()
stlist=list(map(str,input()))
n=int(input())
top=len(stlist)
for _ in range(n):
  go=list(map(str,input().split()))
  if go[0]=='L':
    if top==0:
      continue
    else:
      top-=1
  elif go[0]=='D':
    if top==len(stlist):
      continue
    else:
      top+=1

  elif go[0]=='B':
    if top==0:
      continue
    else:
      top-=1
      stlist.pop(top)

  elif go[0]=='P' :
    stlist.insert(top,go[1])
    top+=1

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

다시 푼 코드
배열을 두개 사용하니 시간초과 문제 해결!👍

import sys
input=sys.stdin.readline

stk1=list(map(str,input().strip()))
stk2=[]
n=int(input())
for _ in range(n):
  go=list(map(str,input().split()))
  
  if go[0]=='L' and stk1!=[]:
    stk2.append(stk1.pop())
  elif go[0]=='D' and stk2 !=[]:
    stk1.append(stk2.pop())
  elif go[0]=='B' and stk1!=[]:
    stk1.pop()
  elif go[0]=='P':
    stk1.append(go[1])

print("".join(stk1+list(reversed(stk2))))
profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글