728x90
[Python/λ°±μ€] 5397 : ν€λ‘κ±°
μκ° μ ν: 1 Sec λ©λͺ¨λ¦¬ μ ν: 256 MB
λ¬Έμ μ€λͺ
μ°½μμ΄λ κ°μ°μ΄μ λΉλ°λ²νΈλ₯Ό νμΉκΈ° μν΄μ κ°μ°μ΄κ° μ¬μ©νλ μ»΄ν¨ν°μ ν€λ‘κ±°λ₯Ό μ€μΉνλ€. λ©°μΉ μ κΈ°λ€λ¦° λμ μ°½μμ΄λ κ°μ°μ΄κ° λΉλ°λ²νΈ μ°½μ μ λ ₯νλ κΈμλ₯Ό μ»μ΄λλ€.
ν€λ‘κ±°λ μ¬μ©μκ° ν€λ³΄λλ₯Ό λλ₯Έ λͺ λ Ήμ λͺ¨λ κΈ°λ‘νλ€. λ°λΌμ, κ°μ°μ΄κ° λΉλ°λ²νΈλ₯Ό μ λ ₯ν λ, νμ΄νλ λ°±μ€νμ΄μ€λ₯Ό μ λ ₯ν΄λ μ νν λΉλ°λ²νΈλ₯Ό μμλΌ μ μλ€.
κ°μ°μ΄κ° λΉλ°λ²νΈ μ°½μμ μ λ ₯ν ν€κ° μ£Όμ΄μ‘μ λ, κ°μ°μ΄μ λΉλ°λ²νΈλ₯Ό μμλ΄λ νλ‘κ·Έλ¨μ μμ±νμμ€. κ°μ°μ΄λ ν€λ³΄λλ‘ μ λ ₯ν ν€λ μνλ²³ λλ¬Έμ, μλ¬Έμ, μ«μ, λ°±μ€νμ΄μ€, νμ΄νμ΄λ€.
μ λ ₯
첫째 μ€μ ν μ€νΈ μΌμ΄μ€μ κ°μκ° μ£Όμ΄μ§λ€. κ° ν μ€νΈ μΌμ΄μ€λ νμ€λ‘ μ΄λ£¨μ΄μ Έ μκ³ , κ°μ°μ΄κ° μ λ ₯ν μμλλ‘ κΈΈμ΄κ° LμΈ λ¬Έμμ΄μ΄ μ£Όμ΄μ§λ€. (1 ≤ L ≤ 1,000,000) κ°μ°μ΄κ° λ°±μ€νμ΄μ€λ₯Ό μ λ ₯νλ€λ©΄, '-'κ° μ£Όμ΄μ§λ€. μ΄λ 컀μμ λ°λ‘ μμ κΈμκ° μ‘΄μ¬νλ€λ©΄, κ·Έ κΈμλ₯Ό μ§μ΄λ€. νμ΄νμ μ λ ₯μ '<'μ '>'λ‘ μ£Όμ΄μ§λ€. μ΄λλ 컀μμ μμΉλ₯Ό μμ§μΌ μ μλ€λ©΄, μΌμͺ½ λλ μ€λ₯Έμͺ½μΌλ‘ 1λ§νΌ μμ§μΈλ€. λλ¨Έμ§ λ¬Έμλ λΉλ°λ²νΈμ μΌλΆμ΄λ€. λ¬Όλ‘ , λμ€μ λ°±μ€νμ΄μ€λ₯Ό ν΅ν΄μ μ§μΈ μλ μλ€. λ§μ½ 컀μμ μμΉκ° μ€μ λ§μ§λ§μ΄ μλλΌλ©΄, 컀μ λ° μ»€μ μ€λ₯Έμͺ½μ μλ λͺ¨λ λ¬Έμλ μ€λ₯Έμͺ½μΌλ‘ ν μΉΈ μ΄λνλ€.
μΆλ ₯
κ° ν μ€νΈ μΌμ΄μ€μ λν΄μ, κ°μ°μ΄μ λΉλ°λ²νΈλ₯Ό μΆλ ₯νλ€. λΉλ°λ²νΈμ κΈΈμ΄λ νμ 0λ³΄λ€ ν¬λ€.
μ λ ₯ μμ 1
2
<<BP<A>>Cd-
ThIsIsS3Cr3t
μΆλ ₯ μμ 1
BAPC
ThIsIsS3Cr3t
My μ½λ
# ν€λ‘κ±°
# N: ν
μ€νΈ μΌμ΄μ€ κ°μ
# < μΌμͺ½μΌλ‘ ν μΉΈ μ΄λ
# > μ€λ₯Έμͺ½μΌλ‘ ν μΉΈ μ΄λ
# - λ°±μ€νμ΄μ€: 컀μ λ°λ‘ μμ κΈμ μ‘΄μ¬νλ€λ©΄ μ§μ°κΈ°
import sys
N = int(sys.stdin.readline())
for i in range(N):
str1 = []
str2 = []
keys = list(sys.stdin.readline().rstrip())
for key in keys:
if key == '<':
if str1:
str2.append(str1.pop())
elif key == '>':
if str2:
str1.append(str2.pop())
elif key == '-':
if str1:
str1.pop()
else:
str1.append(key)
print(''.join(str1 + list(reversed(str2))))
728x90
λκΈ