728x90
문제 코드 전체가 궁금한 분은 깃허브 링크 눌러주세요
GitHub - Rhyankwon/algorithms
Contribute to Rhyankwon/algorithms development by creating an account on GitHub.
github.com
설명 ㄱㄱ
코딩테스트 연습 - 문자열 압축
데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문
programmers.co.kr

가령 aabbaccc 가 있다면 2a2ba3c 이런 식으로 나타낼 수 있다.
-풀이-
...그냥 하면 되는데? 앞쪽부터 잘라서 인덱스를 옮겨주며 뒷쪽과 조금씩 비교하면 된다. 아래에 코드가 있으니,,보시길
처음에 엄청 어렵다고 생각했는데.. 다시 보니까 그냥 앞에서부터 순서대로 길이별로 자르면 되는 문제였다. ㅡㅡㅋㅋ dfs짜고있었네..... 20~30분?정도 걸린듯.
while tmp <= len(string): #위치 변경하기
cnt = 1
sub_string = string[tmp:tmp+i]
for j in range(1, len(string)): #비교
if len(string[tmp+j*i:tmp+(j+1)*i]) >= i and string[tmp+j*i:tmp+(j+1)*i] == sub_string:
cnt+=1
else:
break
if cnt == 1: #반복 없는 경우 문자열 그대로 붙이기
new_s += sub_string
else :
new_s += str(cnt) + sub_string
tmp += j*i
new_s += string[tmp:] #남은 부분 더하기
이 부분이 메인 코드. 위치 변경, 끝쪽 길이 확인 등등까지. 확실히 Lv3 풀다가 Lv2 푸니까 훠얼씬 풀만하다.
728x90
'코딩테스트 > 카카오 기출' 카테고리의 다른 글
| 2021 카카오 신규 아이디 추천 파이썬 풀이, 코드 / 쉬운 구현문제 (0) | 2022.01.30 |
|---|---|
| 카카오 2020 코딩테스트 괄호 변환 해설/코드 (파이썬), 간단한 재귀 구현 문제 (0) | 2022.01.15 |
| 카카오 2020기출, 블록 이동하기 파이썬 코드/해설, 까다로운 구현 문제 LV3, 리스트 집합 속도 차이 (0) | 2022.01.14 |
| 카카오 자물쇠와 열쇠 파이썬 풀이(중첩함수, 변수 오류 시 해결방법) (1) | 2022.01.10 |
| 카카오 2019 블라인드 채용 코딩테스트 1번 오픈채팅방, 2번 실패율, 5번 길 찾기 게임 파이썬 해설 (0) | 2021.08.27 |