문자열 압축
개요
- 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
Programmers
에 공개된 예제이며 링크는 아래와 같습니다.
코드
def solution(s):
temp_answer = []
if len(s) == 1:
return 1
for length in range(1,len(s)):
cut_s = []
for i in range(0, len(s), length):
cut_s.append(s[i:i+length])
count = 0
new_s = ''
for i in range(1, len(cut_s)):
if cut_s[i] == cut_s[i - 1]:
count += 1
else:
if count >= 1:
new_s += str(count + 1) + cut_s[i - 1]
count = 0
else:
new_s += cut_s[i - 1]
count = 0
if i == len(cut_s) - 1:
if count >= 1:
new_s += str(count + 1) + cut_s[i]
# print(new_s)
temp_answer.append(len(new_s))
else:
new_s += cut_s[i]
# print(new_s)
temp_answer.append(len(new_s))
# print(temp_answer)
answer = min(temp_answer)
return answer
마치며
이번 포스팅은 Programmers
에 존재하는 파이썬 코딩테스트 예제 중 레벨 2에 해당하는 문제입니다.