보물창고 블로그

2018 KAKAO BLIND RECRUITMENT 3차 압축 본문

알고리즘 풀이/프로그래머스

2018 KAKAO BLIND RECRUITMENT 3차 압축

홋 메 2020. 3. 26. 17:11
728x90

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/17684

 

프로그래머스

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

programmers.co.kr

문제의 설명대로 그대로 구현하면 된다. 풀이는 아래와 같다. 

dic1 = {}
for i in range(65, 91):
    dic1[chr(i)] = i - 64


def solution(msg):
    last = 27
    answer = []
    l = len(msg)
    idx = 0
    c = 1
    while 1:
        if dic1.get(msg[idx:idx + c]) is None:
            dic1[msg[idx:idx + c]] = last
            last += 1
            answer.append(dic1[msg[idx:idx + c - 1]])
            idx += c - 1
            c = 1
        else:
            if idx + c > l:
                answer.append(dic1[msg[idx:idx + c]])
                break
            c += 1
    return answer
Comments