def solution(s):
len_s = len(s)
cand = []
if len_s < 3:
return len_s
for u in range(1, int(len_s/2)+1):
splt_s = [s[u*i:u*(i+1)] for i in range(int(len_s/u)+1)]
comp_s = []
prev = splt_s.pop(0)
cnt = 1
while splt_s:
cur = splt_s.pop(0)
if cur == prev:
cnt += 1
if len(splt_s) == 0:
comp_s.append(str(cnt)+cur)
else:
if cnt != 1:
comp_s.append(str(cnt)+prev)
else:
comp_s.append(prev)
prev = cur
cnt = 1
if len(splt_s) == 0:
comp_s.append(cur)
cand.append(len(''.join(comp_s)))
return min(cand)
โท ๋ฌธ์์ด์ ์๋ฅด๋ ๋จ์๋ ์ ์ฒด ๋ฌธ์์ด์ ๊ฐ์์ ๋ฐ๊น์ง๋ง ๊ณ ๋ คํ๋ฉด ๋๋ค. ๋ฐ์ด ๋์ ๊ฒฝ์ฐ, ๋ฌธ์์ด์ด 2๊ฐ๋ก ๋๋ ์ ์๊ณ , ๋ ๋จ์์ ๊ธ์ ๊ฐ์๊ฐ ๋ฌ๋ผ ๊ฐ์ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํ ํ์๊ฐ ์๋ค.
โท ์ด์ ์์ ์ ๋ฌธ์์ด ๋จ์๋ฅผ ๋ํ๋ด๋ prev ๋ณ์์ ํ์ฌ ์์ ์ ๋ฌธ์์ด ๋จ์๋ฅผ ๋ํ๋ด๋ cur ๋ณ์๋ฅผ ๋์๋ค. while ๋ฌธ์ ๋๋ฉด์, prev ๋ณ์์ cur ๋ณ์๊ฐ ๊ฐ์์ง ๊ฒฝ์ฐ, cnt ๋ณ์์ 1์ ์ถ๊ฐํ์ฌ ์ค๋ณต๋ ๋ฌธ์์ด ๋จ์์ ์๋ฅผ ์ ๋ฐ์ดํธํ๋ค. ๋ง์ฝ ๋ค๋ฅด๋ค๋ฉด, comp_s ๋ฆฌ์คํธ์ cnt ๋ณ์์ ๋ฌธ์์ด ๋จ์๋ฅผ ํฉ์น ๋ค, ์ถ๊ฐํ์ฌ ์์ถ๋ ๋ฌธ์์ด์ ๋ง๋ค์ด ๊ฐ๋ค. ์ด๋, cnt ๋ณ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ ๋ฌธ์์ด ๋จ์๋ง ์ถ๊ฐํ๋ค.
โท ๋ง์ง๋ง ๋ฌธ์์ด ๋จ์์ ๋ํ ๊ฒฝ์ฐ๋ฅผ if len(splt_s) == 0 ๋ฌธ์ ํตํด ์ถ๊ฐํ์๋ค. ๋ํ ๋ฌธ์์ด์ ๊ฐ์๊ฐ 2๊ฐ ์ดํ์ธ ๊ฒฝ์ฐ, ์์ถํ ์ ์์ผ๋ฏ๋ก if len_s < 3 ๋ฌธ์ ํตํด ์์ธ์ ์ธ ๊ฒฝ์ฐ๋ฅผ ์ถ๊ฐํ์๋ค.
โถ ''.join([List]) ํจ์๋ฅผ ํตํด ๋ฆฌ์คํธ์ ์๋ ์์๋ฅผ ํ๋์ ๋ฌธ์์ด๋ก ํฉ์น ์ ์๋ค.
'Programming > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Level 2] ์กฐ์ด์คํฑ (0) | 2020.10.28 |
---|---|
[Level 2] ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2020.10.27 |
[Level 2] ๊ตฌ๋ช ๋ณดํธ (0) | 2020.10.06 |
[Level 2] ์ ํ๋ฒํธ ๋ชฉ๋ก (Python) (0) | 2020.10.05 |
[Level 2] H-Index (Python) (0) | 2020.10.05 |