kiteday 님의 블로그

[프로그래머스-파이썬] 압축 본문

코딩테스트

[프로그래머스-파이썬] 압축

kiteday 2025. 12. 8. 15:51
반응형
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/17684

 

 

 

def solution(msg):
    answer = []
    dic = {chr(ord('A') + i): i + 1 for i in range(26)}
    num = 27
    
    pointer = 0
    
    while pointer < len(msg):
        word = ''
        end = -1
        for i in range(pointer, len(msg)):
            cur_word = msg[pointer:i+1]
            if cur_word in dic:
                word = cur_word
                end = i
            else:
                break
                
        answer.append(dic[word])
        
        if end+1 < len(msg):
            nxt_word = word + msg[end+1] 
            if nxt_word not in dic:
                dic[nxt_word] = num
                num += 1               
        pointer = end +1

    return answer

 

LIST