Python/Programmers

[프로그래머스/Python] Lv 2. [3차] 압축

hwangzzi 2023. 4. 16. 17:06

⭐ 문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

⭐ 풀이 코드

from string import ascii_uppercase

def solution(msg):
    answer = []
    
    alpha = list(ascii_uppercase)
    
    i = 0
    check = ""  # 사전에 넣을 문자열
    
    while i < len(msg):
        check += msg[i]
        
        # 문자열이 사전에 있는 경우
        if check in alpha:  
            i += 1
            
        # 문자열이 사전에 없는 경우    
        else: 
            # 문자열을 사전에 추가
            alpha.append(check)       
            # 최근 문자 추가하기 직전까지의 문자열을 사전에서 찾기
            answer.append(alpha.index(check[:-1])+1)   
            # check 초기화
            check = ""
    
    answer.append(alpha.index(check)+1)
    
    return answer