문제

풀이
- 문자열의 길이가 1000이하이기 때문에 가능한 모든 경우의 수를 탐색하는 완전 탐색을 수행할 수 있다.
코드
def solution(s: str) -> int:
    answer = len(s)
    
    for step in range(1, len(s)//2+1):
        compressed = ''
        prev = s[0:step]  
        count = 1
        
        for j in range(step, len(s), step):
            
            if prev == s[j:j+step]:
                count += 1
            
            else:
                compressed += str(count) + prev if count >= 2 else prev
                prev = s[j:j+step]  
                count = 1
        
        compressed += str(count) + prev if count >= 2 else prev
        
        answer = min(answer, len(compressed))
    return answer
if __name__ == '__main__':
    print(solution("aabbaccc"))  
    print(solution("ababcdcdababcdcd"))  
    print(solution("abcabcdede"))  
    print(solution("abcabcabcabcdededededede"))  
    print(solution("xababcdcdababcdcd"))  
출처 & 깃허브
이것이 취업을 위한 코딩 테스트다 with python
github