[Programmers] μμΆ
Updated:
μμΆ
μμΆ μ ν΄λ¦νλ©΄ λ°λ‘ μ΄λνλ€.
μ΄ λ¬Έμ λ μμ μ νμλ [Programmers]Β κ΄νΈΒ λ³ν λ¬Έμ μ λΉμ·νλ€. μ£Όμ΄μ§ μμ¬μ½λλ₯Ό ꡬν νλ©΄ λλ€.
- κΈΈμ΄κ° 1μΈ λͺ¨λ λ¨μ΄λ₯Ό ν¬ν¨νλλ‘ μ¬μ μ μ΄κΈ°ννλ€.
- μ¬μ μμ νμ¬ μ λ ₯κ³Ό μΌμΉνλ κ°μ₯ κΈ΄ λ¬Έμμ΄
w
λ₯Ό μ°Ύλλ€.w
μ ν΄λΉνλ μ¬μ μ μμΈ λ²νΈλ₯Ό μΆλ ₯νκ³ , μ λ ₯μμw
λ₯Ό μ κ±°νλ€.- μ λ ₯μμ μ²λ¦¬λμ§ μμ λ€μ κΈμκ° λ¨μμλ€λ©΄(
c
),w+c
μ ν΄λΉνλ λ¨μ΄λ₯Ό μ¬μ μ λ±λ‘νλ€.- λ¨κ³ 2λ‘ λμκ°λ€.
-
μ΄ λ¬Έμ λ μμ΄ λλ¬Έμλ§ μ²λ¦¬νκΈ° λλ¬Έμ String λͺ¨λμ ν΅ν΄ A-Z κΉμ§ dict λ₯Ό μ΄κΈ°ν ν΄μ£Όμλ€.
-
νμ¬ λ¬Έμμ΄μ μμμ λΆν° ν κΈμ, λ κΈμ λλ € κ°λ©° dict μ μλμ§ κ²μ¬λ₯Ό ν λ€ μλ€λ©΄ w μ μ μ₯νλ€.
λ§μ½ μλ κ²½μ° κ·Έλλ‘ μ’ λ£νλ€λ©΄ μ¬μ μμ νμ¬ μ λ ₯κ³Ό μΌμΉνλ κ°μ₯ κΈ΄ λ¬Έμμ΄ w λ₯Ό κ°μ§κ² λλ€.
-
_dict[w] λ₯Ό ν΅ν΄ μμΈ λ²νΈλ₯Ό μΆλ ₯ νλ€ msg = msg[len(w):] λ₯Ό ν΅ν΄ μ λ ₯μμ w λ₯Ό μ κ±°νλ€.
-
μ΄λ msgμ μ²λ¦¬ν΄μΌ ν λ¬Έμκ° μ¬μ ν λ¨μμλ€λ©΄ w+c λ₯Ό _dict μ μ μ₯νλ€.
-
λ¨κ³ 2λ‘ λμκ°λ€.
from string import ascii_uppercase
def solution(msg):
answer = list()
_dict = dict()
for val in ascii_uppercase:
_dict[val] = len(_dict) + 1
while msg:
w = ''
for idx in range(len(msg)):
if msg[:idx + 1] in _dict:
w = msg[:idx + 1]
else:
break
answer.append(_dict[w])
msg = msg[len(w):]
if msg:
wc = w + msg[0]
_dict[wc] = len(_dict) + 1
return answer
Leave a comment