나의 개발일지

[프로그래머스] Lv.2 [3차] 압축 [Python, 파이썬] KAKAO 본문

프로그래머스

[프로그래머스] Lv.2 [3차] 압축 [Python, 파이썬] KAKAO

YoonJuHan 2023. 9. 26. 19:59

 

def solution(msg):
    answer = []
    
    dict = {}
    
    for i in range(26): # 사전 초기화, 'A' : 1
        dict[chr(65+i)] = i+1
        
    index = 27
    k = 0
    
    for i in range(len(msg)):
        x = msg[k]  # 현재 입력
        
        while x in dict:    # 사전에 있으면
            if k + 1 > len(msg)-1:  # 문자열 길이 넘으면
                answer.append(dict[x])  # 남은 글자에 대한 색인 번호 추가
                return answer
            x += msg[k+1]   # 다음 글자와 연결
            k += 1          # 포인터 증가
            
        dict[x] = index     # 사전에 없는 글자면 while문 빠져나와서 사전에 추가
        index += 1          # 색인 번호 증가
        answer.append(dict[x[:len(x)-1]])   # 사전에 추가하기 전 문자열의 색인 번호 정답에 추가
    
    return answer
Comments