본문 바로가기
코딩테스트

문자열 압축

by 느림보어른 2021. 5. 26.

문제풀이

def solution(s):
    
    answer = 0
    
    min_st = len(s)
    
    for length in range(1, len(s)):
        new_st = [s[i:i+length] for i in range(0, len(s), length)]
        answer_st = ''
        key = None
        for word in new_st:
            if key:
                if key == word:
                    count += 1
                else:
                    if count > 1:
                        answer_st += str(count) + key
                        key = word
                        count = 1
                    else:
                        answer_st += key
                        key = word
                        count = 1
            else:
                key = word
                count = 1
        if count > 1:
            answer_st += str(count) + key
        else:
            answer_st += key
        if len(answer_st) < min_st:
            min_st =len(answer_st)
    
    answer = min_st
    return answer

특정한 알고리즘 해결로 푸는 문제는 아니었다. 다만 내부 생성 표기법을 한 번 더 볼 필요는 있다.

알고리즘

내부 생성

new_st = [s[i:i+length] for i in range(0, len(s), length)]

문자열 s를 [ i : i + length] 만큼씩 배열에 저장한다.

출처

문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

'코딩테스트' 카테고리의 다른 글

체육복  (0) 2021.05.28
삼각 달팽이  (0) 2021.05.26
짝지어 제거하기  (0) 2021.05.25
내적  (0) 2021.05.25
더 맵게  (0) 2021.05.24