programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
효율성과 시간복잡도를 생각하니까 반복문을 최대한 줄이려고 하니
문제푸는 시간이 길어졌고 결국 못풀었다.
생각할 시간을 갖고 안되면 반복문으로라도 해결하고 파이써닉한 코드를 작성해주는 것을 목표로 공부해야겠다.
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)