알고리즘/programmers

[Programmers] 문자열 압축

꾸준함. 2021. 12. 10. 23:32

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/60057

 

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

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

programmers.co.kr

완전 탐색법으로 푸는 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 주어진 문자열의 길이가 1이면 압축을 해도 1이므로 1을 반환합니다.

2. 압축 단위는 1 ~ (주어진 문자열의 반)까지 가능하므로 각각의 경우의 수를 모두 구해줘야 합니다.

2.1 재귀 함수를 통해 압축 가능 여부를 판단하고 압축이 가능하면 func 함수의 cnt 매개변수를 1 증가시켜주고 압축이 불가능하면 func 함수의 word에 여태까지의 압축 문자열을 추가해줍니다.

2.2 문자열의 끝까지 2.1을 진행한 뒤 result 문자열과 비교하여 더 길이가 작은 쪽을 result에 저장해줍니다.

3. result의 길이를 반환해줍니다.

 

 

개발환경:Visual Studio 2017

 

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형