문제

풀이
- 문자열의 길이가 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