https://programmers.co.kr/learn/courses/30/lessons/60057
풀이
1 ~ s의 길이//2 만큼 단위를 늘려가면서 탐색
단위 만큼 확인 하면서 같다면 cnt갱신 다르면 cnt를 포함한 단위 문자열을 추가
def solution(s):
MIN=int(987654321)
length=len(s)
if(len(s)==1):
return 1;
for cut in range(1, length//2+1): # 문자열 단위 1 ~ len(s)//2
cnt=1
res=""
comp=s[:cut]
for idx in range(cut, length, cut):
if comp==s[idx:idx+cut]:
cnt+=1
else:
if cnt==1:
cnt=""
res+=str(cnt)+comp
comp=s[idx:idx+cut]
cnt=1
if cnt==1:
cnt=""
res+=str(cnt)+comp
if MIN > len(res):
MIN=len(res)
return MIN
'알고리즘' 카테고리의 다른 글
Programmers - 상호평가 (0) | 2021.09.14 |
---|---|
Programmers - 부족한 금액 계산하기 (0) | 2021.09.14 |
Programmers - 자물쇠와 열쇠(C++) (0) | 2021.09.05 |
BOJ 12100 - 2048(Easy)(C++) (0) | 2021.09.02 |
BOJ 12015 - 가장 긴 증가하는 부분 수열2(C++) (0) | 2021.09.02 |
댓글