본문 바로가기
알고리즘/코드

2020 KAKAO BLIND RECRUITMENT 문자열 압축

by MOVE🔥 2019. 11. 25.
728x90
반응형

백준 알고리즘 2135번 문자열 압축하기 문제와 비슷해 보이는데 좀더 쉬운 문제 같아 보였다.

python으로 풀어보았다

 

def zip_string(s, size):
    zipstring = ""
    count = 1
    chk_word = s[0:size]

    for i in range(size,len(s),size):
        cur_word = s[i:i+size]
        if(chk_word == cur_word):
            count = count + 1
        else:
            if count > 1:
                zipstring = zipstring + str(count) + chk_word
            else:
                zipstring = zipstring + chk_word
            chk_word = cur_word
            count = 1

    if count > 1 :
        zipstring = zipstring + str(count) + chk_word
    else :
        zipstring = zipstring + chk_word

    return len(zipstring)


def solution(s):
    min_len = len(s)
    for i in range(1,len(s)-1):
    	# i 단위로 잘라서 s문자열을 압축함
        cur_len = zip_string(s, i)
        #압축한 문자열 길이가 기존 압축 문자열길이 보다 작을 때 
        if min_len > cur_len:
            min_len = cur_len
        # 압축할 단위가 압축된 문자열 길이보다 클 때 반복문 종료
        if i+1 > min_len:
            break

    return min_len;

 

 

728x90
반응형

댓글