문자열압축

minjun kim·2024년 4월 18일

Check Point !
( 해당사항 ✓체크 )

막힘 없이 수월하게 풀린 문제인가?

1시간이내로 풀렸던 문제인가?

1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가? ✅

시간을 써도 도무지 풀 수 없는 문제인가?

솔루션을 찾아봤는가? ✅

난이도 체감

최상

중 ✅ (중하)

<이해도>

완벽히 이해 ✅

다소 헷갈리는 부분들이 있음

이해 못함

<덧붙일 말>
생각보다 구현문제가 구현하기 어렵다 ㅠㅠ 생각해야할점도있고... 구현문제많이 풀어서 for문을 잘적용하고
이에따라 변화값을 바꿔주는 변수도 적응이 필요할것같다
복습잘해보쟈

문제

문자열압축
https://school.programmers.co.kr/learn/courses/30/lessons/60057

풀이

  • 입력으로 주어지는 문자열의 길이가 1000이하 이기때문에 모든 경우의 수를 탐색하는 완전 탐색을 수행할 수 있다.
def solution(s):
    answer = len(s)
    n = len(s)
    
    
    for step in range(1, n//2 + 1):
        k = s[0:step]    
        compress = ''
        cnt = 1
        
        for j in range(step,n,step):
            if k == s[j:j+step]:
                cnt += 1
            
            else:
                compress += str(cnt) + k if cnt >= 2 else k
                k = s[j:j+step]
                cnt = 1
            
        compress += str(cnt) + k if cnt >= 2 else k
        answer = min(answer,len(compress))
    
    return answer
profile
배움의 흔적을 남기고 싶습니다.

0개의 댓글