โฌ [Programmers] [Python] [2018 KAKAO BLIND RECRUITMENT] [Level2] [3์ฐจ] ์์ถ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/17684/solution_groups?language=python3
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
ํ์ด
# ํ๋ก๊ทธ๋๋จธ์ค 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