728x90
반응형
문제 출처:https://school.programmers.co.kr/learn/courses/30/lessons/60057
풀이:
첫 풀이:
def solution(s):
list = []
for i in range(1, len(s) // 2+ 1):
res = ''
count = 1
slice = s[:i]
for j in range(i, len(s)+i, i):
if slice == s[j:i+j]:
count += 1
else:
if count == 1:
res += slice
else:
res += str(count) + slice
slice = s[j:j+i]
count = 1
list.append(len(res))
return min(list)
1개 틀림
if len(s) == 1:
return 1
맨위에 추가 하니 100
for i in range(1, len(s) // 2+ 1):
res = ''
count = 1
slice = s[:i]
자르는 단위 1부터 절반까지 자르면 된다
slice 는 뒤에 자른 단위숫자만큼 비슷한지 비교하려고 slice에 넣음
for j in range(i, len(s)+i, i):
if slice == s[j:i+j]:
count += 1
두번째 포문으로
slice 와 다음 자른것을 비교한다. (i만큼 격차를 두고)
같으면 count +=1
다른데 count = 1이면 그대로 slice 를 res에추가
다르면서 count가 있으면 4ab 이런식으로 넣어줘야하니 str(count) + slice
앞에 같은 4ab 넣어주고 다른 지금꺼를 slice에 넣어주고 count = 1 초기화
지금꺼를 넣어야 다음 for문으로 돌아올때 가능,
반응형
댓글