chyam

[프로그래머스 Lv2,python] - 문자열 압축 본문

프로그래머스/LV2

[프로그래머스 Lv2,python] - 문자열 압축

chyam_eun 2025. 3. 25. 10:54

https://school.programmers.co.kr/learn/courses/30/lessons/60057

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(s):
    l = len(s) # 문자열 길이
    res = []
    prev = ''
    # 1~l개 단위로 잘라서 압축한 결과들을 저장하기
    for i in range(1,l+1): # 총 길이만큼 반복
        cnt = 1
        new_str = ''
        for j in range(0,l,i): # i개 단위로 잘라주기 
            cur = s[j:j+i]
            if j == 0: # 처음은 prev값 저장해주고 넘기기
                prev = cur
                continue
            if prev == cur: # 자른게 앞에 자른것과 같으면 갯수 더해주고
                cnt += 1
            else: # 다를때 갯수+문자열을 새로운 문자열에 더해주기.
                if cnt>1:
                    new_str += str(cnt) + prev
                else: # 1개는 그대로 더해주기
                    new_str += prev
                cnt = 1
            prev = cur # 이전 값 저장하기
        if cnt>1: 
            new_str += str(cnt) + prev
        else:
            new_str += prev
        res.append(len(new_str)) #문자열이 끝나면 그 결과를 저장하기
    return min(res)