def solution(s):
# ๋ฌธ์์ด์ ๊ธธ์ด๋ก ์ ๋ต ํ๋ณด๋ฅผ ์ด๊ธฐํ ํ๋ค
answer = len(s)
# 1๊ฐ ๋ฐ๋ณต ๋ถํฐ ์ ์ฒด ์ ๋ฐ ๊ธธ์ด์ ๋ฐ๋ณต๊น์ง ์ดํด๋ณธ๋ค
for length in range(1, len(s) // 2 + 1):
# ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์์๋ ๋ฏธ๋ฆฌ ๋ฃ์ด๋๋ค
temp = [s[:length]]
# ๋ช ๋ฒ ๋ฐ๋ณต๋๋ ์ง count ๋ณ์๋ก ์ผ๋ค
count = 1
# ๋๋ฒ์งธ ์์ ์ธ๋ฑ์ค๋ถํฐ ๋ง์ง๋ง ์ธ๋ฑ์ค๊น์ง length๋งํผ ๊ฑด๋๋ฐ๋ฉฐ ์ผ๋ค
for index in range(length, len(s), length):
# ๋ง์ฝ ๊ทธ ์์๊ฐ ๊ทธ ์์ ์์์ ๊ฐ๋ค๋ฉด
if s[index: index + length] == temp[-1]:
# count๋ฅผ 1 ํค์ด๋ค
count += 1
# ์๋ก์ด ์์๊ฐ ๋์๋ค๋ฉด
else:
# ๊ทธ ์ด์ ์์๊ฐ ํ๋ฒ ๋์จ๊ฒ ์๋๋ผ๋ฉด
if count != 1:
# ๊ทธ ์ด์ ์์๊ฐ ๋ฐ๋ณต๋ ํ์๋ฅผ ๊ทธ ์์ ์ ์ด์ค๋ค
temp.insert(-1, str(count))
# ์ด๋ฒ ์์์ ๋ฐ๋ณต ํ์๋ฅผ 1๋ก ์ด๊ธฐํ ํด์ค๋ค
count = 1
# ์๋ก ๋์จ ์์๋ฅผ temp์ ๋ง์ง๋ง์ ์ถ๊ฐํ๋ค
temp.append(s[index: index + length])
else:
# ๋ฐ๋ณต์ด ๋ชจ๋ ๋๋ ํ ์ซ์์๋ ์นด์ดํธ๋ฅผ ๋นผ๋จน์ง ์๋๋ค
if count != 1:
temp.insert(-1, str(count))
# ๊ธธ์ด๋ฅผ ์ธ๊ณ ์ง๊ธ๊น์ง์ ๋ต๋ณด๋ค ๋ ์ต์ ์ ๋ต์ด ๋์๋ค๋ฉด ์นํํ๋ค
temp_answer = len("".join(temp))
if temp_answer < answer:
answer = temp_answer
return answer