#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(string s) {
int answer = s.length();
// 1부터 문자열 길이의 절반까지 단위로 문자열을 잘라서 압축해보기
for (int unit = 1; unit <= s.length() / 2; ++unit) {
string compressed = "";
string prev = s.substr(0, unit); // 첫 번째 단위 문자열
int count = 1;
// 단위 단위로 문자열을 비교하며 압축하기
for (int i = unit; i < s.length(); i += unit) {
string current = s.substr(i, unit);
if (prev == current) {
count++;
} else {
// 현재 문자와 이전 문자가 다르면 압축 결과에 추가
if (count > 1) {
compressed += to_string(count);
}
compressed += prev;
prev = current;
count = 1;
}
}
// 마지막 남은 부분 처리
if (count > 1) {
compressed += to_string(count);
}
compressed += prev;
// 압축한 문자열의 길이를 갱신
answer = min(answer, (int)compressed.length());
}
return answer;
}