코딩테스트연습
2018 KAKAO BLIND RECRUITMENT
LZW 압축 구현하기
def solution(msg):
msg = msg.lower()
alphabet = "abcdefghijklmnopqrstuvwxyz"
alpha_dict = {i+1:x for i, x in enumerate(alphabet)}
key_num = 27
result = []
p_cnt = 0
t_cnt = 1
c = 0
while p_cnt <= len(msg):
if msg[p_cnt:t_cnt] in list(alpha_dict.values()):
t_cnt += 1
if t_cnt > len(msg):
result.append(list(alpha_dict.values()).index(msg[p_cnt:t_cnt-1])+1)
break
c += 1
else:
result.append(list(alpha_dict.values()).index(msg[p_cnt:t_cnt-1])+1)
alpha_dict[key_num] = msg[p_cnt:t_cnt]
key_num += 1
p_cnt = c
t_cnt = c+1
return result
반응형
'CodingTest > Level2' 카테고리의 다른 글
[연습] 코딩테스트 - 3차 파일명 정렬 (0) | 2020.03.26 |
---|---|
[연습] 코딩테스트 - 점프와 순간이동 (0) | 2020.03.02 |
[연습] 코딩테스트 - 영어 끝말잇기 (0) | 2020.03.02 |
[연습] 코딩테스트 - JadenCase 문자열 만들기 (0) | 2020.02.26 |
[연습] 코딩테스트 - 짝지어 제거하기 (0) | 2020.02.26 |