문제
알고리즘
- 반복문을 통해 문자열 압축 길이를 변경한다.
- 반복문을 통해 문자열을 확인한다.
- 문자열을 압축하여 값을 비교한다.
- 값이 같으면 cnt를 카운트한다.
- 값이 다르다면 cnt에 따라 res에 문자열을 추가한다.
- 문자열을 추가했다면 문자열 압축 길이를 새롭게 초기화한다.
- 반복문이 끝나면 문자열 압축 길이가 최소인지 비교한다.
코드
# 16:20 => 17:18
def solution(s):
answer = len(s)
# 반복문을 통해 문자열 압축 길이 변경
for i in range(1, len(s) // 2 + 1):
res = ""
temp = s[:i] # 문자열 압축 길이
cnt = 1
# 반복문을 통해 문자열 확인
for j in range(i, len(s) + i, i):
# 문자열 압축
if temp == s[j : j + i]:
cnt += 1
else:
if cnt == 1:
res += temp
else:
res += str(cnt) + temp
temp = s[j : j + i] # 문자열 압축 길이 초기화
cnt = 1
# 문자열 압축 길이 최소
answer = min(answer, len(res))
return answer
github
'CodingTest > Programers' 카테고리의 다른 글
[programers] 프로그래머스(파이썬) : 124 나라의 숫자 (0) | 2022.04.29 |
---|---|
[programers] 프로그래머스(파이썬) : 오픈채팅방 (0) | 2022.04.27 |
[programers] 프로그래머스(파이썬) : 방문 길이 (0) | 2022.04.26 |
[programers] 프로그래머스(파이썬) : 스킬트리 (0) | 2022.04.26 |
[programers] 프로그래머스(파이썬) : 점프와 순간 이동 (0) | 2022.04.25 |