반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/60057
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
풀이
문자열을 최대 len(s)/2의 길이만큼 압축할 수 있으므로 1 ~ len(s)/2 단위 길이로 모두 압축을 시도해보고, 압축 했을 때 각각의 길이를 비교해 최소 길이를 구한다.
코드
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def solution(s):
answer = len(s)
result = ""
for length in range(1, len(s) // 2 + 1):
unit = s[:length]
cnt = 1
for i in range(length, len(s), length):
if s[i:i+length] == unit:
cnt += 1
else:
if cnt == 1:
cnt = ""
result += str(cnt) + unit
unit = s[i:i+length]
cnt = 1
if cnt == 1:
cnt = ""
result += str(cnt) + unit
answer = min(answer, len(result))
result = ""
return answer
|
cs |
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 - K번째수 (0) | 2022.01.30 |
---|---|
프로그래머스 - 타겟 넘버 (0) | 2021.08.24 |
프로그래머스 - 키패드 누르기 (0) | 2021.08.21 |
프로그래머스 - 크레인 인형뽑기 게임 (0) | 2021.08.20 |
프로그래머스 - 124 나라의 숫자 (0) | 2021.08.19 |