알고리즘

[알고리즘-구현] 문자열 압축

23 2021. 12. 8. 14:01

https://programmers.co.kr/learn/courses/30/lessons/60057

 

코딩테스트 연습 - 문자열 압축

데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문

programmers.co.kr

<아이디어>

문제 그대로 구현만 하면 되는 문제이다

1부터 주어진 문자열의 길이의 반까지 숫자까지 잘라가면서, 어떤 숫자로 잘라야만 압축 했을 때 가장 짧은지 비교하면 된다.

문자열의 최대 길이가 1000까지 이므로 완전 탐색을 수행할 수 있다.

 

 

이 문제에서 가장 어려웠던 부분은

만약 "aabbaccc" 일 경우 3단위로 잘랐을 경우

"aab" "bac" "cc" 로 나눠지게 되는데, 마지막 "cc"를 어떻게 처리해야 하나.... 가 고민이 되었다.

 

해설 답을 보니 compressed="" 를 선언하고, 나머지 "cc"는 그냥 compressed에 그냥 더해주었다.

내 생각보다 매우 간단했다.

알고리즘 문제를 풀 때 가장 중요하게 동작하는 아이디어를 먼저 생각하고 예외가 되는 것은 따로 처리 해줘야 겠다.