N

(프로그래머스 JS KAKAO)문자열 압축 본문

프로그래머스 알고리즘/KAKAO

(프로그래머스 JS KAKAO)문자열 압축

naeunchan 2021. 5. 11. 15:35
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/60057?language=javascript

 

코딩테스트 연습 - 문자열 압축

데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문

programmers.co.kr

 

function solution(s) {
    let answer = s.length;
    
    for(let i = 1; i <= s.length / 2 + 1; i++){
        let count = 1;
        let tmp = 0;
        let str = s.substr(0, i);
        
        for(let j = i; j < s.length; j += str.length){
            if(str === s.substr(j, i)){
                count++;
            }
            else{
                if(count === 1){
                    tmp += str.length;
                }
                else{
                    tmp += count.toString().length + str.length;
                }
                str = s.substr(j, i);
                count = 1;
            }
        }
        
        if(count === 1){
            tmp += str.length;
        }
        else{
            tmp += count.toString().length + str.length;
        }
        
        answer = answer < tmp ? answer : tmp;
    }
    
    return answer;
}
728x90
반응형