B/Coding Test
코딩테스트 연습2020 KAKAO BLIND RECRUITMENT문자열 압축
f_s_t_k
2021. 10. 8. 17:15
https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
def solution(s):
temp = []
for n_cut in range(1,len(s)//2+1):
cnt = 0
compressed = ''
for cut in range(0,len(s),n_cut):
if s[cut:cut+n_cut] == s[cut+n_cut:cut+(n_cut*2)]:
cnt +=1
else:
if cnt != 0:
compressed += str(cnt) + s[cut:cut+n_cut]
cnt = 0
else:
compressed += s[cut:cut+n_cut]
temp.append(len(compressed))
return min(temp)
def solution(s):
#일단 내가 해결하기 힘든부분은 그냥 반복이나 노가다성 코드로 돌리자
length = len(s)
answer = [length]
for size in range(1,length):
compressed = ""
splited = [s[i:i+size] for i in range(0, length, size)]
count = 1
for j in range(1,len(splited)):
if splited[j-1] == splited[j]:
count += 1
else:
compressed += str(count)+splited[j-1] if count>1 else splited[j-1]
count = 1
compressed += str(count)+splited[-1] if count>1 else splited[-1]
answer.append(len(compressed))
return min(answer)