[Python] 프로그래머스(Lv2) - 압축 (2018 KAKAO BLIND RECRUITMENT[3차] )

Kerri·2021년 3월 20일
0

코테

목록 보기
29/67

안녕하세요 :)

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

2018 KAKAO BLIND RECRUITMENT 에 출제되었던 압축 문제입니다.

풀이는 구현이라 문제 설명과 똑같이 W와 C를 만들어서 answer에 추가시켜주었습니다.

def solution(msg):
    d = {}
    for n in range(65, 91):
        count = n - 64
        d[chr(n)] = count

    answer = []
    i = 0
    count = 26

    while i < len(msg):
        for j in range(i + 1, len(msg)+1):
            w = msg[i:j]
            if w in d:
                if j >= len(msg):
                    answer.append(d[w])
                    i = j - 1
                    break
                else:
                    c = msg[j]
                    
                if w + c not in d:
                    count += 1
                    answer.append(d[w])
                    d[w+c] = count
                    i = j - 1
                    break               
            else:
                i += 1
                count += 1
                d[w] = count
                answer.append(d[w])
                break
                
        i += 1
        
    return answer
profile
안녕하세요 !

0개의 댓글