알고리즘/프로그래머스

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

SBOX Learning by doing 2022. 9. 2. 21:26
반응형

def solution(msg):
    answer = []
    # index temp 파일 생성
    index_list = {
        "A":1, "B":2, "C":3, "D":4, "E":5, "F":6, "G":7, "H":8, "I":9, "J":10,
        "K":11, "L":12, "M":13, "N":14, "O":15, "P":16, "Q":17, "R":18, "S":19, "T":20,
        "U":21, "V":22, "W":23, "X":24, "Y":25, "Z":26
    }

    while len(msg) != 0:
        # 최대 w 찾기
        w = ''
        temp = 0
        for i in range(len(msg)):
            if msg[0:i+1] in index_list.keys():
                w_index = index_list[msg[0:i+1]] # 11
                w = msg[0:i+1] # K
        answer.append(w_index)

        # 입력에서 w 제거
        msg = msg[len(w):]
        # w 색인 번호 출력
        # 다음글자가 있을시 w+c 사전등록 
        if len(msg) != 0:
            index_list[w+msg[0]] = len(index_list)+1
        else:
            index_list[w] = len(index_list)+1

    return answer

반응형