본문 바로가기

카테고리 없음

[프로그래머스] 문자열 압축

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

 

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

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

programmers.co.kr

 

효율성과 시간복잡도를 생각하니까 반복문을 최대한 줄이려고 하니

문제푸는 시간이 길어졌고 결국 못풀었다.

생각할 시간을 갖고 안되면 반복문으로라도 해결하고 파이써닉한 코드를 작성해주는 것을 목표로 공부해야겠다.

 

 

def solution(s):
    #일단 내가 해결하기 힘든부분은 그냥 반복이나 노가다성 코드로 돌리자
    length = len(s)
    answer = [length]
    
    for size in range(1,length):
        compressed = ""
        splited = [s[i:i+size] for i in range(0, length, size)]
        count = 1
        for j in range(1,len(splited)):
            if splited[j-1] == splited[j]:
                count += 1
            else:
                compressed += str(count)+splited[j-1] if count>1 else splited[j-1]
                count = 1
        compressed += str(count)+splited[-1] if count>1 else splited[-1]     
        answer.append(len(compressed))
    
    return min(answer)