[PS] 문자열 압축

owo·2023년 1월 31일
0

PS

목록 보기
10/25

문제 링크

코드

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자리가 된다는 것을 전혀 생각하지 못했다.

0개의 댓글