https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3
쪼개야하는 문자 수만큼 for문을 돌려서 같은 문자열들을 압축시켜 나간다.
복잡해질 것 같아서 함수로 만들어 구현하였다.
def zip_string(x, i):
arr = [x[i*j:i*(j+1)] for j in range(len(x)//i+1)]
result = '' # 결과 문자
if len(arr[-1]) != i:
result += arr[-1]
arr = arr[:-1]
cnt = 1 # 압축 문자 갯수
temp = arr.pop(0) # 비교 문자
while arr:
cur = arr.pop(0)
if temp == cur:
cnt += 1
else:
if cnt == 1:
result += temp
else:
result += str(cnt)+temp
temp = cur
cnt = 1
if cnt == 1:
result += temp
if cnt != 1:
result += str(cnt) + temp
return len(result)
def solution(s):
answer = len(s)
for i in range(1,len(s)//2+1): # 쪼개는 조각 수
if answer > zip_string(s, i):
answer = zip_string(s, i)
return answer