https://school.programmers.co.kr/learn/courses/30/lessons/60057
1. 내가 작성한 풀이
def solution(s):
min_result = len(s)
for i in range(1,len(s)//2+1): #문자 단위의 개수
start = 0
end = i
temp = [0,s[start:end]]
record = ""
for _ in range(len(s)//i+1):
if temp[1] != s[start:end]: #temp값과 자른 값이 같지 않은 경우
if temp[0] >= 2:
record += str(temp[0])
record += temp[1]
else: #반복되는 수가 2보다 작을 경우 숫자는 삽입x
record += temp[1]
temp = [1,s[start:end]]
else:
temp[0] += 1
start += i
end += i
final_end = end-2*i
#남아있는 글자가 있으면 합쳐주기
if final_end < len(s):
record += s[final_end:]
#최솟값 찾기
min_result = min(min_result, len(record))
return min_result
비슷한 방법인데 아래를 참고하면 훨씬 더 간단하게 풀 수 있다,, ㅠㅠ
https://ljhyunstory.tistory.com/18
'🔅코딩테스트 공부🔅 > ❗프로그래머스(Lv.2)' 카테고리의 다른 글
[프로그래머스] Level2 연속 부분 수열 합(python) (0) | 2023.04.29 |
---|---|
[프로그래머스] Level2 튜플(python) (0) | 2023.04.26 |
[프로그래머스] Level2 방문 길이(python) (0) | 2023.04.23 |
[프로그래머스] Level2 타겟 넘버(python) (0) | 2023.04.21 |
[프로그래머스] Level2 후보키(python) (0) | 2023.04.20 |
댓글