DevKim

[Python] 2018 KAKAO BLIND RECRUITMENT - 압축 본문

알고리즘 PS

[Python] 2018 KAKAO BLIND RECRUITMENT - 압축

on_doing 2021. 3. 3. 17:07
728x90

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

 

코딩테스트 연습 - [3차] 압축

TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34]

programmers.co.kr

[ 알고리즘 ]

구현

 

[문제 접근]

기존의 알파벳으로 사전을 생성시켜준다.

그 후에 문자열을 하나씩 돌면서 사전에 존재하는 문자열까지 체크를 해주고, 존재하는 문자열+1까지의 문자열을 사전에 새로 넣어준다.

 

마지막 문자열을 처리하는 과정에서 index에 오류가 있어서 생각보다 오래걸렸던 문제였음

 

[코드]

def solution(msg):
    answer = []
    dic=[0]
    
    for i in range(26):
        dic.append(chr(i+65))
        
    i=0
    check=0
    
    while True:
            
        if msg[i] in dic:
            ptr=msg[i]
            idx=i
            while True:                    
                if msg[i:idx+1] in dic:
                    if idx==len(msg)-1:
                        answer.append(dic.index(msg[i:idx+1]))
                        check=1
                        break
                        
                    else:
                        idx+=1
                        
                else:
                    answer.append(dic.index(msg[i:idx]))
                    dic.append(msg[i:idx+1])                    
                    i=idx
                    break
                    
            if check==1:
                break
        
    return answer
728x90
Comments