알고리즘/코드
2020 KAKAO BLIND RECRUITMENT 문자열 압축
MOVE🔥
2019. 11. 25. 22:49
728x90
반응형
백준 알고리즘 2135번 문자열 압축하기 문제와 비슷해 보이는데 좀더 쉬운 문제 같아 보였다.
python으로 풀어보았다
def zip_string(s, size):
zipstring = ""
count = 1
chk_word = s[0:size]
for i in range(size,len(s),size):
cur_word = s[i:i+size]
if(chk_word == cur_word):
count = count + 1
else:
if count > 1:
zipstring = zipstring + str(count) + chk_word
else:
zipstring = zipstring + chk_word
chk_word = cur_word
count = 1
if count > 1 :
zipstring = zipstring + str(count) + chk_word
else :
zipstring = zipstring + chk_word
return len(zipstring)
def solution(s):
min_len = len(s)
for i in range(1,len(s)-1):
# i 단위로 잘라서 s문자열을 압축함
cur_len = zip_string(s, i)
#압축한 문자열 길이가 기존 압축 문자열길이 보다 작을 때
if min_len > cur_len:
min_len = cur_len
# 압축할 단위가 압축된 문자열 길이보다 클 때 반복문 종료
if i+1 > min_len:
break
return min_len;
728x90
반응형