문제 링크
코드
def solution(s):
answer = 1000
for l in range(1, len(s) + 1):
answer = min(answer, length(s, l))
return answer
def length(s, l):
arr = []
while s:
arr.append(s[:l])
s = s[l:]
memory = [[arr[0], 1]]
for v in arr[1:]:
if memory[-1][0] == v:
memory[-1][1] += 1
else:
memory.append([v, 1])
result = 0
for s, n in memory:
result += len(s) + (len(str(n)) if n != 1 else 0)
return result
리뷰
- 처음에 문제를 꼼꼼하게 읽지 못해서 앞에서부터 자르는 것을 알지 못하고 풀어서 시간을 좀 낭비했다. 문제를 잘 읽고 풀어야겠다
- 같은 단어가 10개 이상 나오면 숫자가 2자리가 된다는 것을 전혀 생각하지 못했다.