카카오 2020 문자열 압축

문제

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

풀이

def solution(s):
    
    def check(x):
        result = ""
        temp = []
        count = 1
        for i in range(0,len(s),x):
            temp.append(s[i:i+x])
        
        for i in range(0,len(temp)-1):
            if temp[i] == temp[i+1]:
                count += 1
                
            else :
                result += (str(count) + temp[i]) if count > 1 else temp[i]
                count = 1
        
        result += (str(count) + temp[i]) if count > 1 else temp[i+1]
        return len(result)
            
    arr = []
    arr.append(len(s))
    for j in range(1,len(s)):
        arr.append(check(j))

    return min(arr)

주의점

5번 테스트케이스에서 계속 런타임 에러가 나서 그부분 찾는게 힘들었다.
1글자 짜리가 들어오면 arr에 append가 되지 않아 min함수에서 빈 배열이 호출되어 런타임에러가 발생한다.

따라서 arr.append(len(s))
기본값으로 문자열 길이만큼 넣어주었다

끝.

좋은 웹페이지 즐겨찾기