[프로그래머스] 압축

쿼카쿼카·2023년 3월 7일
0

알고리즘

목록 보기
42/67

코드

function solution(msg) {
    const ans = [];
    const dic = {};
    let nextWord = '';
    let i = 27;

    for(let j=65; j<91 ; j++) {
        dic[String.fromCharCode(j)] = j-64;
    }
    
    const s = msg.split('').reduce((acc, cur) => {
        nextWord = acc + cur;
        if(dic[nextWord]) return nextWord;
        else {
            dic[nextWord] = i++;
            ans.push(dic[acc]);
            return cur;
        }
    })
    
    ans.push(dic[s])
    
    return ans
}

reduce 활용

  • 사실 못 풀었다^_^
  • 재귀함수로 기깔나게 풀려고 했는데 무한루프가 걸리고 왜 무한루프인지 루돌프인지 정신이 나갈 것 같아 힌트를 얻었어요!
  • reduce를 잘 사용하시네....저는 reduce와 아직 어사라 조금씩 친해지는 시간을 가져볼게요
  • acc + cur이 딕셔너리에 없으면 둘 합한 걸 return
  • 있으면 딕셔너리 채워주고 cur을 return
  • 마지막 s는 안 채워지니까? 엥 근데 다시 생각해보니까 s 마지막이 잘 채워지면 어쩔겨? 왜 다 성공 뜬거지?
profile
쿼카에요

0개의 댓글