๐งฉ๋ฌธ์ ํด์
์คํ๊ณผ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ ๋จ์ ๊ตฌํ ๋ฌธ์ ๋ค. ์ด์ ์ ํ๋ฒ ํ์๋ ์ ํ์ด์ฌ์ ์ฝ๊ฒ ํ์๋๊ฒ ๊ฐ๋ค. ๊ทธ๋ ์ด์ฌํ ๊ณ ๋ฏผํ๋๊ฒ ์์ง ๋จธ๋ฆฌ์ ๋จ์ ์์๋ค.
๐ํ์ด
๋ค์ด ์ค๋ ์ ๋ ฅ๋ค์ L, B, P $, D ๋ก ์ ๊ตฌ๋ถํ์ฌ ์ฒ๋ฆฌํด์ค๋ค.
L ์ ๋ ฅ : ๋ฌธ์์ด.pop() ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฌธ์๋ฅผ ์๋ก์ด ์คํ ์์ด์ append()
B ์ ๋ ฅ : ๋ฌธ์์ด.pop()
P $ ์ ๋ ฅ : ๋ฌธ์์ด.append($)
D ์ ๋ ฅ : ์คํ.pop() ๊ทธ๋ฆฌ๊ณ ๊ทธ ์คํ ๋ฌธ์๋ฅผ ๋ฌธ์์ด์ append()
์ด ๋ ์กฐ์ฌํด์ผํ๋๊ฒ ์คํ๋ฆฌ์คํธ๋ ๋ฌธ์์ด ๋ฆฌ์คํธ๊ฐ ๋น์ด์์ผ๋ฉด pop() ํจ์ ์ฌ์ฉ์ ์๋ฌ๊ฐ ๋๋ค. ์ฒ๋ฆฌ๋ฅผ ์ ํด์ค์ผ ํ๋ค.
๐ป์ฝ๋
import sys
input = sys.stdin.readline
word = list(input().rstrip()) # ์ด๊ธฐ ๋ฌธ์์ด
lis = [] # ๋ช
๋ น ์ฝ๋ ๋ด์ ๋ฆฌ์คํธ
stk = [] # ์ปค์ ์ด๋์ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฆฌ์คํธ
m = int(input())
for i in range(m):
# ๋ช
๋ น ์ฝ๋ ๋ฆฌ์คํธ์ ๋ด๊ธฐ
code = input().rstrip()
lis.append(code)
for j in lis:
if j == "L":
if len(word) != 0:
# ์ปค์๊ฐ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ฉด ๋ฌธ์์ด์ ๋ฌธ์ํ๋ ๋นผ๊ณ ์คํ์ ์ถ๊ฐ, ๋จ ๋ฌธ์์ด์ด ๋น์ง ์์์์
stk.append(word.pop())
elif j == "D":
if len(stk) != 0:
# ์ปค์๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋. ์คํ์ ๋ฌธ์๋ฅผ ๋ฌธ์์ด์ ์ถ๊ฐ, ๋จ ์คํ์ด ๋น์ง ์์์์
word.append(stk.pop())
elif j == "B":
if len(word) != 0:
# ๋ฐฑ์คํจ์ด์ค ์คํ ๋จ ๋ฌธ์์ด์ด ๋น์ง ์์์์
word.pop()
else:
# ๋ฌธ์์ด ์ถ๊ฐ
a, b = j.split()
word.append(b)
# ๋ฌธ์์ด๊ณผ ์คํ์ ๋จ์์๋ ๋ฌธ์๋ค ์ถ๋ ฅ
print("".join(word + stk[::-1]))
์ค๊ฐ์ ๋ช ๋ น ์ฝ๋๋ฅผ ๋ฐ๋ก ์ ์ฅํ์ง ์๊ณ ๋ฐ๋ก ์ฒ๋ฆฌํด๋ ๋ ๊ฑฐ ๊ฐ๋ค.
๐๋ฌธ์ ๋งํฌ: 1406๋ฒ: ์๋ํฐ
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2023๋ฒ: ์ ๊ธฐํ ์์ (0) | 2022.05.02 |
---|---|
[๋ฐฑ์ค] ๐ฅณ200๋ฌธ์ ๋ฌ์ฑ!๐ฅณ (0) | 2022.05.01 |
[๋ฐฑ์ค] 13305๋ฒ: ์ฃผ์ ์ - ํ์ด์ฌ (0) | 2022.04.30 |
[๋ฐฑ์ค] 4375๋ฒ: 1 - ํ์ด์ฌ (0) | 2022.04.28 |
[๋ฐฑ์ค] 1789๋ฒ: ์๋ค์ ํฉ - ํ์ด์ฌ (0) | 2022.04.27 |