```
def solution(s):
result = []
# 길이가 1일때
if len(s) == 1 :
return 1
# 반복이 가장클때도 절반은 넘지 못하므로
for i in range(1, (len(s)//2) + 1):
b = ''
cnt = 1 # 반복 횟수
tmp = s[:i] # 자른 길이
# i 부터 i간격으로 s길이 만큼 반복
for j in range(i, len(s), i):
# 반복 되었을 떄 cnt += 1
if tmp == s[j:i+j]:
cnt+=1
else : # 반복 되지않을때
if cnt != 1 : # 반복될때 만약에 2가아닌 3이어도 다시 재입력
b = b + str(cnt) + tmp
else : # 반복 안될때.
b = b + tmp
tmp = s[j:j+i]
cnt = 1
if cnt != 1 :
b = b + str(cnt) +tmp
else :
b = b + tmp
result.append(len(b))
return min(result)
'Python > Algorithm' 카테고리의 다른 글
Baekjoon_1010_bridge python 풀이 (0) | 2022.05.10 |
---|---|
1240 distance BFS (0) | 2022.04.13 |
[Python] 정규 표현식 (0) | 2021.03.17 |
리스트 빼기 리스트 (0) | 2021.03.10 |