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;
}