[프로그래머스 level2] 문자열 압축_카카오 2020

김예지·2021년 10월 22일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/60057


문제 풀이

코드

function solution(s) {
    if(s.length===1) return 1;
    const arr=[];
    for(let i=1; i<=parseInt(s.length/2); i++){
        let cnt=1;
        let string='';
        for(let j=0; j<s.length; j+=i){
            const current=s.substr(j, i);
            const next=s.substr(j+i, i);
            if(current===next) cnt++;
            else{
                string=cnt>1? string+cnt+current : string+current;
                cnt=1;
            }
        }
        arr.push(string.length);
    }
    return Math.min(...arr);
}

예전에 풀었던 문자열압축 문제와 비슷한 원리이지만, 조금 응용된 형태라고 어렵다. 정답률 23.1%...! 꼼꼼하게 풀면 풀 수 있는 문제인데 너무 어렵게 생각한 것 같다.
문제풀이는 이분의 코드를 보고 참고했다.

이론

  • 예를들어 'abcde'에서, substr(10, 1)을 하면 빈 문자열이 나온다.
  • abcde에서 문자열을 압축하기 위해서는, a-b비교, b-c비교, c-d비교, d-e비교, e-''비교를 해야한다. 문자열압축 을 참고하자!

참고 자료

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글