문자열 압축 (2020 KAKAO BLIND RECRUITMENT)
5040 단어 Problem SolvingProblem Solving
문제
[프로그래머스] 문자열 압축 (2020 KAKAO BLIND RECRUITMENT)
풀이
문자열을 쪼개는 단위 l (1개 ~ 문자열 s의 절반)
에 따라 탐색한다.
l
칸씩 step을 뛰어서 split[]
에 쪼갠 문자열을 저장한 뒤 해당 문자열을 tmp
에 압축한다.
압축 결과tmp
가 기존res
보다 더 짧으면 갱신한다.
def solution(s):
res = s
for l in range(1, len(s)//2+1):
split = []
for i in range(0, len(s), l):
split.append(s[i:i+l])
cnt = 1
tmp = ''
for i in range(len(split)):
if i+1 < len(split) and split[i] == split[i+1]: cnt += 1
else:
if cnt == 1: tmp += split[i]
else:
tmp += str(cnt) + split[i]
cnt = 1
if len(tmp) < len(res):
res = tmp
return len(res)
Author And Source
이 문제에 관하여(문자열 압축 (2020 KAKAO BLIND RECRUITMENT)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimsen/문자열-압축-2020-KAKAO-BLIND-RECRUITMENT저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)