문제 링크 (Level 2)
https://programmers.co.kr/learn/courses/30/lessons/60057
나의 코드 (python)
def solution(s):
answer = 0
L = []
# 문자열 길이가 1개인건 1개만 그냥 1
if len(s) == 1:
return 1
# 반복이 되는 것이기 때문에 절반만 검증
for i in range(1, len(s)//2 + 1):
arr = ""
cnt = 1
tmp = s[:i]
# 1개부터 절반까지 반복되는 값을 검증
for j in range(i, len(s), i):
if s[j:i+j] == tmp:
cnt += 1
else:
# 반복과 다른 값을 만났을 때
if cnt == 1:
arr += tmp
tmp = s[j:i+j]
else:
arr += str(cnt) + tmp
tmp = s[j:i+j]
cnt = 1
print(arr)
# 마지막까지 같은 경우를 검증하기 위함
if cnt == 1:
arr += tmp
else:
arr += str(cnt) + tmp
L.append(len(arr))
answer = min(L)
return answer
반복이 되려면 문자열 길이의 1/2을 넘기면 안 됩니다.
이후에는 1개 문자열로 반복을 검증 2개 문자열로 반복을 검증 ... 이런 식으로 글자 수를 늘려서 반복을 찾아봅니다.
마지막으로 마지막 비교를 확인해서 넣어줍니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 없는 숫자 더하기 (Python) (0) | 2022.03.22 |
---|---|
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.03.21 |
[프로그래머스] 숫자 문자열과 영단어 (python) (0) | 2021.07.29 |
[프로그래머스] 폰켓몬 (python) (0) | 2021.07.27 |
[프로그래머스] 모의고사 (python) (0) | 2021.07.27 |
댓글