[프로그래머스] 문자열 압축 (javascript)
728x90
반응형
문자를 1개로 자르는 것부터 최대 문자열/2의 길이까지 압축할 수 있다
압축을 못하는 경우도 넣어줘야 모든 케이스를 통과한다
자른 문자열의 앞과 뒤를 비교해서 다르면 지금까지 자른 문자열을 새로운 문자열에 더해준다
function solution(s) {
var answer = [s.length]; // 압축이 안된 문자열도 넣어줘야 모든 테스트 통과함
let max_len=Math.floor(s.length/2); //압축할 수 있는 경우 최대 문자열/2 의 길이까지
// 자르는 길이
for(let i=1;i<=max_len;i++){ //문자를 1개~문자열길이/2까지 해본다
let cnt=1;
let sub_str="";
for(let j=0;j<s.length;j+=i){
const first=s.substring(j,j+i); //substring은 뒤의 인덱스가 길이를 넘어가면
// 개수에 상관없이 남은 문자열을 리턴해준다
const second=s.substring(j+i,j+i*2);
if(first===second){
cnt+=1;
}else{
if(cnt==1){
sub_str=sub_str+first; //숫자랑 문자열을 더하면 숫자가 문자로 변환
}else{
sub_str=sub_str+cnt+first;
cnt=1;
}
}
}
answer.push(sub_str.length);
}
return Math.min(...answer); //최소길이 구한다
}
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 크레인 인형뽑기 게임 (javascript) (0) | 2021.01.22 |
---|---|
[프로그래머스] 가장 큰 수 (javascript) (0) | 2021.01.22 |
[프로그래머스] 124 나라의 숫자 (javascript) (0) | 2021.01.21 |
[프로그래머스] 스킬트리 (javascript) (0) | 2021.01.21 |
[프로그래머스] 삼각 달팽이 (javascript) (0) | 2021.01.21 |
TAGS.