문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057
slice
메서드 사용Set
을 이용하여 중복을 제거해버리면 숫자를 셀 수 없습니다. slice
된 문자열을 이용해 완전탐색으로 해결했습니다.function solution(s) {
const max_cut_num = s.length / 2;
const str_len = s.length;
let answer = s.length;
for (let i = 1; i <= max_cut_num; i++) {
let cut_str = s.slice(0, i);
let count = 1;
let temp_str = "";
for (let j = i; j <= str_len; j = j + i) {
let next_cut_str = s.slice(j, j + i);
// string 바로 비교 가능 했나? 가능하네...
if (cut_str === next_cut_str) {
count++;
} else {
temp_str += count > 1 ? `${count}` + cut_str : cut_str;
cut_str = next_cut_str;
count = 1;
}
}
// 나머지 처리
if (cut_str) temp_str += cut_str;
if (answer > temp_str.length) answer = temp_str.length;
}
return answer;
}