728x90
반응형
SMALL
프로그래머스 Level 2 문자열 압축을 파이썬을 통해 풀어보았다.
https://programmers.co.kr/learn/courses/30/lessons/60057
Level 2 - 문자열 압축
n 단위로 압축한 문자열의 길이 중 가장 짧은 길이를 찾는 것이 목표이다. 가장 짧은 문자열을 찾기 위해서는 1부터 모든 단위로 문자열을 압축하여 비교해야 한다.
n 단위로 압축한 문자열의 길이를 구하는 compact(n) 함수를 구현하는 게 문제의 목표다. 문자열 s를 문자열로 변환한 s_에 대해서 n만큼 잘라내고 압축이 가능한지 비교한다. 만약 잘라낸 s_이 n보다 작다면 그대로 문자열에 붙이면 된다. 압축이 가능하다면 가능한 만큼 num에 표시한다. 만약 num의 크기가 1이라면 압축이 불가하므로 그대로 문자열에 붙이고 num이 1보다 크다면 압축이 가능하므로 num과 잘라낸 문자열을 붙인다.
compact(n)을 1부터 수행하여 가장 짧은 압축 문자열의 길이를 구한다.
#Level 2 문자열 압축.py
def solution(s):
answer = 0
def compact(n) :
s_ = list(s)
result = ""
while s_ :
num = 1
if len(s_) > n :
temp = s_[:n]
s_ = s_[n:]
else :
temp = s_
s_ = []
while temp == s_[:n] :
num += 1
s_ = s_[n:]
if num == 1 :
result += "".join(temp)
else :
result += str(num) + "".join(temp)
return len(result)
answer = compact(1)
for i in range(2,len(s)+1) :
temp = compact(i)
if answer > temp :
answer = temp
return answer
728x90
반응형
SMALL
'Problem Solving > programmers' 카테고리의 다른 글
[programmers] Level 2 더 맵게.py (0) | 2021.06.27 |
---|---|
[programmers] Level 2 기능 개발.py (0) | 2021.06.22 |
[programmers] Level 2 124 나라의 숫자.py (0) | 2021.06.17 |
[programmers] Level 2 멀쩡한 사각형.py (0) | 2021.06.13 |
[programmers] Level 2 짝지어 제거하기.py (0) | 2021.06.12 |