최대 1 분 소요

사용 언어: Python3

문제

문자열 압축

풀이

다른 풀이

참고

def solution(s):
    if len(s) == 1:
        return 1
    length_after_zip = [] # 각 단위로 압축 후 길이
    # unit 단위로 압축
    for unit in range(1, len(s) // 2 + 1):
        res = '' # 압축한 문자열
        tmp = s[:unit]
        cnt = 1
        for i in range(unit, len(s), unit):
            if tmp == s[i:i+unit]:
                cnt += 1
            else:
                res += str(cnt) + tmp if cnt > 1 else tmp
                cnt = 1
                tmp = s[i:i+unit] # tmp 갱신
        res += str(cnt) + tmp if cnt > 1 else tmp
        length_after_zip.append(len(res))
    return min(length_after_zip)
  • 테스트 케이스: 통과
  • 제출 결과: 통과


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기