[알고리즘/프로그래머스] - 문자열 압축(python)

유현민·2022년 5월 26일
0

알고리즘

목록 보기
188/253

문제

자르는 경우가 1부터 //2 까지 이다.
만약에 자르고 뒤에가 남는다면 이어붙인다.

현재 자른 문자열이랑 이전 문자열을 비교해준다. 같으면 +1
다르면 현재 몇개가 같았는지 비교하고 a에 추가해준다.
최종적으로 min을 사용하여 값을 비교

def solution(s):
    answer = len(s)
    for i in range(1, len(s) // 2 + 1):
        a = ''
        n = 1
        pre = s[:i]
        for j in range(i, len(s) * 2, i):
            now = s[j:j + i]
            if pre == now:
                n += 1
            elif pre != now:
                if n == 1:
                    a += pre
                else:
                    a += str(n) + pre
                n = 1
            pre = now
        answer = min(answer, len(a))
    return answer
profile
smilegate megaport infra

0개의 댓글