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
반응형
'알고리즘 > 코드' 카테고리의 다른 글
[코딩테스트 고득점 Kit] 해시 1 - 완주하지 못한 선수 (1) | 2020.01.27 |
---|---|
프로그래머스 SQL 고득점 Kit - SELECT (0) | 2020.01.27 |
백준 2178 미로 탐색 python (BFS 최단거리) (0) | 2019.10.12 |
2020 KAKAO BLIND RECRUITMENT 가사 검색 (Trie) (0) | 2019.10.05 |
백준 11047 동전0 C# (0) | 2019.07.14 |
댓글