프로그래머스 - 3차 압축

Lumi·2021년 10월 25일
0

알고리즘

목록 보기
21/59
post-thumbnail

내가쓴 코드

정답 코드

let idx = 27;
function solution(msg) {
    let answer = [];
    for (let i=0; i<msg.length; i){
        let w = msg[i];
        let c = msg[i+1];
        let newW = add(msg,i,w,c,0);
        answer.push(key[newW]);
        i += newW.length;
    }
    return answer;
}
function add(msg,i,w,c,cnt){
    if (key[w+c] === undefined){
        key[w+c] = idx++;
        console.log(w,c,key[w], key[w+c])
        return w;
    }else{
        cnt++;
        let newW = w+c;
        let newC = msg[i+1+cnt];
        return add(msg,i,newW,newC,cnt);
    }
}

일단 문제는 해결하지 못했다...

  • 알파벳과 번호를 객체로 만들어서 나와 같이 없으면 넣어주고 하는 방식은 똑같다.

하지만 나 같은 경우에는 이걸 어떻게 유도리있게?? 순서대로?? 로직이 작동을 하게 짜야하는 부분에서

머리가 돌아가지 않아서 막혀서 해결을 하지 못했다.

  • 생각보다 간단했다. 만약 사전안에 값이 있으면 다음 값을 더해서 비교를 한뒤 없으면 사전에 넣어주면 되는 것인데
  • 이상하게 이 부분을 어떻게 짜야 하는지를 모르겠다...

아직도 왜 못했는지 이해가 안가네;;

후에 내 코드로 다시 도전해볼 생각이다!

profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글