문제 링크
https://programmers.co.kr/learn/courses/30/lessons/60057
Test Case
문제풀이
너무 많이 풀어서 풀이가 외워져버린 문제.
문자열 + 구현문제로 연습하기에 너무 좋은 문제라고 생각.
문자열을 1,2,3.. 개로 나눠가며 해당 개수 단위별로 같은 부분이 생기면 카운트 +1, 다르면 이것저것 처리해줘야함
구현문제 많이 풀어봐야할 듯
Source Code
import sys
input = sys.stdin.readline
s = input().rstrip()
ans = len(s)
for step in range(1, len(s) // 2 + 1):
ans_str = ""
rep = s[0:0+step]
cnt = 1
for i in range(step,len(s),step):
if rep == s[i:i+step]:
cnt += 1
else :
ans_str += str(cnt) + rep if cnt >= 2 else rep
rep = s[i:i+step]
cnt = 1
ans_str += str(cnt) + rep if cnt >= 2 else rep
ans = min(ans, len(ans_str))
print(ans)
'Develop > algorithm' 카테고리의 다른 글
백준 1647번 도시 분할 계획 (Python) (0) | 2021.07.29 |
---|---|
이것이 코딩테스트다 미래도시 (Python) (0) | 2021.07.23 |
이것이 코딩테스트다 전보 (Python) (0) | 2021.07.23 |
이것이 코딩테스트다 부품찾기 (Python) (0) | 2021.07.14 |
코드업 4572 영역 구하기 (Python) (0) | 2021.07.09 |