알고리즘 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