2018 KAKAO BLIND RECRUITMENT - [3차] 압축

이서현·2021년 8월 1일
0

Algorithm

목록 보기
62/76
post-thumbnail

08.01에 푼 문제입니당🌷
[3차] 압축

처음에 문제에 잘못 접근해서 시간이 걸렸던 문제이다.
알고리즘을 생각하고 코드를 쓰는 습관을 길러야겠다😂

풀이법

우선, w는 현재입력이다. c는 다음글자이다.
w+c가 사전에 있는지 확인한다.
있으면 w에 c를 붙여서 다시 사전에서 찾아본다.
w+c가 없는 경우 정답에 w 인덱스를 추가하고 사전에 w+c 를 push 한다.
w는 다음 글자인 c를 가지게 된다.

function solution(msg) {
    var answer = [];
    let alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('')
    msg=[...msg]
    let w=msg.shift()
    while(w){
        let c = msg.shift()
        if(alpha.includes(w+c)){
            w+=c
        }
        else{
            answer.push(alpha.indexOf(w)+1)
            alpha.push(w+c)
            w=c
        }
    }
    
    return answer;
}
profile
안녕하세요. 이서현입니다( ღ'ᴗ'ღ )

0개의 댓글