문제
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr
알고리즘
- 반복문을 통해 문자열 압축 길이를 변경한다.
- 반복문을 통해 문자열을 확인한다.
- 문자열을 압축하여 값을 비교한다.
- 값이 같으면 cnt를 카운트한다.
- 값이 다르다면 cnt에 따라 res에 문자열을 추가한다.
- 문자열을 추가했다면 문자열 압축 길이를 새롭게 초기화한다.
- 반복문이 끝나면 문자열 압축 길이가 최소인지 비교한다.
코드
# 16:20 => 17:18
def solution(s):
answer = len(s)
# 반복문을 통해 문자열 압축 길이 변경
for i in range(1, len(s) // 2 + 1):
res = ""
temp = s[:i] # 문자열 압축 길이
cnt = 1
# 반복문을 통해 문자열 확인
for j in range(i, len(s) + i, i):
# 문자열 압축
if temp == s[j : j + i]:
cnt += 1
else:
if cnt == 1:
res += temp
else:
res += str(cnt) + temp
temp = s[j : j + i] # 문자열 압축 길이 초기화
cnt = 1
# 문자열 압축 길이 최소
answer = min(answer, len(res))
return answer
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Programers' 카테고리의 다른 글
[programers] 프로그래머스(파이썬) : 124 나라의 숫자 (0) | 2022.04.29 |
---|---|
[programers] 프로그래머스(파이썬) : 오픈채팅방 (0) | 2022.04.27 |
[programers] 프로그래머스(파이썬) : 방문 길이 (0) | 2022.04.26 |
[programers] 프로그래머스(파이썬) : 스킬트리 (0) | 2022.04.26 |
[programers] 프로그래머스(파이썬) : 점프와 순간 이동 (0) | 2022.04.25 |