๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/17684/solution_groups?language=python3
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ - ์์ถ
def solution(msg):
answer = []
d = {chr(65+i) : i+1 for i in range(26)}
w, c = 0, 0
while True:
c += 1
if c == len(msg):
answer.append(d[msg[w:c]])
break
if msg[w:c+1] not in d:
d[msg[w:c+1]] = len(d) + 1
answer.append(d[msg[w:c]])
w = c
return answer
์ํ๋ฒณ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ
w๋ ์์ ๋ฌธ์์ด, c๋ ์๋ฅด๋ ๋ ๋ฌธ์์ด์ด๋ค.
๋ง์ฝ ์๋ฅด๋ ๋ ๋ฌธ์์ด์ด msg์ ๊ธธ์ด์ ๊ฐ๋ค๋ฉด ๋ง์ง๋ง ํ์์ ๋ง์น๊ฒ์ด๋ฏ๋ก ์ข ๋ฃํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ w๋ถํฐ c+1๊น์ง ๋ฌธ์์ด์ด d์ ์๋ค๋ฉด d[์๋ฅธ๋ฌธ์์ด] ์ ์ฌ์ ์ ์ถ๊ฐํด์ฃผ๋๋ก ํ๊ณ
์๋ฅด๊ธฐ ๋ฐ๋ก์ ๋ฌธ์์ด์ answer์ append ํด์ค๋ค. ๋ง์ง๋ง์ผ๋ก ๋ค์์ธ๋ฑ์ค๋ก ๋์ด๊ฐ๊ธฐ ์ํด w = c