1. 문제
https://programmers.co.kr/learn/courses/30/lessons/60057#
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
2. 풀이
10의 자리수는 자리수가 2...
100의 자리수는 자리수가 3...
극단적인 예시를 항상 생각하자!
3. 코드
def solution(s):
answer = 0
minans = len(s)
for i in range(1,len(s) // 2+1):
cut = s[0:i]
cnt = 1
answer = len(cut)
for j in range(1,len(s)//i+1):
new = s[i*j:i*(j+1)]
if (cut == new):
cnt = cnt +1
else:
if(cnt != 1 and cnt < 10):
answer = answer + 1
elif(cnt > 9 and cnt < 100):
answer = answer + 2
elif(cnt > 99 and cnt < 1000):
answer = answer + 3
elif(cnt > 999):
answer = answer + 4
cnt = 1
cut = new
answer = answer + len(new)
answer = answer + len(s[i*(len(s)//i+1):])
if minans > answer:
minans = answer
answer = 0
return minans
'ALGORITHM > Kakao' 카테고리의 다른 글
[Python] 삼각달팽이 (0) | 2021.10.08 |
---|---|
[Python] 거리두기 확인하기 (0) | 2021.10.05 |
[Python] 괄호 회전하기 (0) | 2021.10.05 |
[Python] 비밀지도 (0) | 2021.10.03 |
[Python] 수식 최대화 (0) | 2021.10.02 |