Toolofv 님의 블로그

[Python] 프로그래머스 - 2020 KAKAO BLIND RECRUITMENT 문자열 압축 본문

Algorithm

[Python] 프로그래머스 - 2020 KAKAO BLIND RECRUITMENT 문자열 압축

Toolofv 2024. 9. 24. 09:03
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제해결방법

 

1. 문자열을 압축하는 문제다. 압축하는 데 단위를 증가시킬 수 있어야 하고, 최대 단위는 주어진 문자열의 절반일 것이다. 어차피 단위가 그 이상 넘어가면 압축이 되지 않기 때문.

 

2. 파이썬의 문자열 슬라이싱은 직관적으로 보기 편하고, 쉽다. 이를 이용해 단위에 따른 문자열이 중복되는지를 검사한다.

 

3. 남은 잔여 문자열도 저장하기 전 반영해줘야 한다.

 

- 코드

def solution(s):
    answer = len(s)
    for i in range(1, len(s)//2+1):
        start = 0
        cnt = 1
        res = ''
        while start + i <= len(s):
            ts = s[start:start+i]
            while ts == s[start+i:start+i+i]:
                start += i
                cnt += 1
            if cnt > 1:
                res += str(cnt)
            cnt = 1
            start += i
            res += ts
        res += s[start:]
        answer = min(answer, len(res))
    return answer
반응형