[未解決の問題]白俊1406(スタック/キュー)
一般的な問題なのでinsertとdelを使ってリストを修正できますが、0.3秒の限られた時間では時間がかかりすぎます(O(N)).次に、カーソルの左側リストとカーソルの右側リストを作成し、比較的少ないappendとpopを使用して問題を解決します.( O(1) )
import sys
left = list(input())
n = int(input())
right = []
orders = []
for _ in range(n):
orders.append(list(sys.stdin.readline().split()))
for order in orders:
if order[0] == 'P':
left.append(order[1])
elif order[0] == 'L':
if left:
right.append(left.pop())
elif order[0] == 'D':
if right:
left.append(right.pop())
else:
if left:
left.pop()
right.reverse()
print(''.join(left) + ''.join(right))
Reference
この問題について([未解決の問題]白俊1406(スタック/キュー)), 我々は、より多くの情報をここで見つけました https://velog.io/@junseo/못-푼-문제-백준-1406스택큐テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol