본문 바로가기
Problem Solving/프로그래머스

kakao 2020 코딩테스트 기출문제 - 문자열 압축

by ggyongi 2021. 4. 22.
반응형

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

 

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

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

programmers.co.kr

풀긴 했지만 꽤 오래걸려서 실전이었으면 못 풀었을 것 같다...

def solution(s):
    result = []
    for unit in range(1, len(s) + 1): # unit(int) means the length of unit
        length = 0
        word = ''
        show = 0
        start = 0
        for _ in range(len(s)//unit):
            present = s[start:start+unit]
            if word == present: # repeat
                show +=1   
                if show == 2 :
                    length +=1
                elif show > 2:
                    length -=len(str(show-1))
                    length += len(str(show))
                
            elif word != present: # new word
                word = present
                show = 1
                length += unit
              
            start += unit
        length += (len(s) % unit)
        
        result.append(length)
    return min(result)
        
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글