ALGORITHM/Kakao

[Python] 문자열 압축

김쿸후 2021. 10. 5. 23:42

1. 문제

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

 

코딩테스트 연습 - 문자열 압축

데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문

programmers.co.kr

 

2. 풀이

10의 자리수는 자리수가 2...

100의 자리수는 자리수가 3...

극단적인 예시를 항상 생각하자! 

 

3. 코드

def solution(s):
    answer = 0
    minans = len(s)
    
    for i in range(1,len(s) // 2+1):
        cut = s[0:i]
        cnt = 1
        answer = len(cut)
        
        for j in range(1,len(s)//i+1):
            new = s[i*j:i*(j+1)]
            if (cut == new):
                cnt = cnt +1
            else:
                if(cnt != 1 and cnt < 10):
                    answer = answer + 1
                elif(cnt > 9 and cnt < 100):
                    answer = answer + 2
                elif(cnt > 99 and cnt < 1000):
                    answer = answer + 3
                elif(cnt > 999):
                    answer = answer + 4
                cnt = 1
                cut = new
                answer = answer + len(new)
        answer = answer + len(s[i*(len(s)//i+1):])        
        if minans > answer:
            minans = answer
        answer = 0
                    
    return minans

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 삼각달팽이  (0) 2021.10.08
[Python] 거리두기 확인하기  (0) 2021.10.05
[Python] 괄호 회전하기  (0) 2021.10.05
[Python] 비밀지도  (0) 2021.10.03
[Python] 수식 최대화  (0) 2021.10.02