[카카오] 문자열 압축

Tae-Kyun Kim·2022년 1월 14일
0
def solution(s):
    shortest = s
    for l in range(1, len(s) // 2 + 1):
        tmp = ''
        i = 0
        while i < len(s):
            cnt = 1
            if s[i: i+l] == s[i+l: i+l+l]:
                stk = s[i: i+l]
                while stk == s[i+l: i+l+l]:
                    cnt += 1
                    i += l
                tmp += str(cnt) + stk
                i += l
            else:
                tmp += s[i: i+l]
                i += l
        if len(tmp) < len(shortest):
            shortest = tmp
    return len(shortest)

의문

왜 index 에러가 나지 않을까?

→ 문자열 슬라이싱 구문에서는 인덱스를 초과하여도 에러가 나지 않음

Tips

  • while 문으로 index 를 증가시키면서 하는 것이 아니라 3개씩 끊어서 for 문을 돌려 tokenize 하는 방식도 가능
  • 단어 배열을 1차이내어 zip 이터레이션 활용 가능

0개의 댓글