문제 풀이
이 문제의 핵심은 문자열을 정해진 길이만큼 잘라 내는 것입니다. 자바에서는 이것을 substring() 메서드를 사용하여 쉽게 구현할 수 있습니다. 압축했을 때 가장 짧은 문자열의 길이를 구해야 하는데, 이는 모든 길이에 대해 압축을 시도한 후 그중 가장 짧은 길이를 선택하면 됩니다. 이를 바탕으로 다음과 같이 문제 풀이 흐름을 세울 수 있습니다.
문제 풀이 흐름
1. 1부터 입력 문자열 s의 길이만큼 자를 문자열의 길이를 설정하며 반복
2. 설정된 길이만큼 문자열을 잘라 낸 token의 배열 생성
3. 문자열을 비교하며 token의 배열을 하나의 문자열로 압축
4. 1~3 과정으로 압축된 문자열 중 가장 짧은 길이 반환
코드 작성
1. 1부터 입력 문자열 s의 길이만큼 자를 문자열의 길이를 설정하며 반복
먼저 자를 문자열의 길이를 반복문을 이용하여 설정하고, 가장 짧은 압축 문자열의 길이를 담을 min 변수를 선언하고 반환합니다. 자를 문자열의 길이는 최소 1부터 시작하여 문자열 전체 길이를 포함하도록 반복합니다.
int min = Integer.MAX_VALUE;
for (int length = 1; length <= s.length(); length++) {
// 문자열 압축 후 가장 짧은 길이 선택
}
return min;