PS/프로그래머스
[완전탐색][JS] 문자열 압축
returnzero
2022. 7. 26. 19:20
function solution(s) {
var answer = s.length;
let maxnum= Math.floor(s.length/2);
function Breakdown( i, chars){
let breakdown=[];
let temp='';
let counter=0;
for (let k=0; k<chars.length;k++){
temp+=chars[k];
counter++;
if(counter==i){
breakdown.push(temp);
temp='';
counter=0;
}
}
if(temp !=='') breakdown.push(temp);
return breakdown;
}
for(let i=1; i<=maxnum;i++){
let sampleString='', repition =1;
let chars=Breakdown(i,s);
let current=chars[0];
// console.log(chars);
for(let j=1;j<chars.length;j++){
// console.log(current, chars[j])
if(chars[j]==current){
repition++;
}
else{
// console.log("different");
if(repition>1){
sampleString+=String(repition);
sampleString+=current;
current=chars[j];
repition=1;
}
else{
sampleString+=current
current=chars[j];
}
}
}
if(repition>1){
sampleString+=String(repition);
}
sampleString+=current;
// console.log(sampleString);
answer= Math.min(sampleString.length,answer);
}
return answer;
}
문자열을 보기 좋게 쪼개는 함수를 먼저 선언한다면 조금 편하게 구현할 수 있다. 그 외에는 특별한 점이 없는 구현 문제이다.