개발 공부
(프로그래머스)(자바스크립트 )압축 본문
코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] 압축
https://programmers.co.kr/learn/courses/30/lessons/17684
//하루
var nextNum;
var logFlag = false;
function solution(msg) {
//if(msg === 'ABABABABABABABAB') logFlag = true;
//if(!logFlag) return;
var answer = [];
var dict = initDictionary();
while(msg){
//if (logFlag) console.log("메시지 :", answer);
var index = 0;
//해당 인덱스의 캐릭터
var pop = msg.charAt(index);
//KAO, 0, K, 15
//KAO, 1, KA, 15
var flag = true;
while(flag){
var tempVal = dict[pop];
index += 1;
pop += msg.charAt(index);
var tempVal2 = dict[pop];
//KAO, 1, KA, 15
if(!tempVal2 || pop.length == msg.length){
//마지막 단어인경우
if(tempVal2){
answer.push(tempVal2);
msg = '';
if (logFlag) console.log(msg);
flag = false;
break;
}
answer.push(tempVal);
dict[pop] = nextNum;
nextNum++;
msg = msg.slice(index);
flag = false;
break;
}
}
}
if (logFlag) console.log(dict);
return answer;
}
function initDictionary(){
var obj = {};
var num = 1;
for(var i = 'A'.charCodeAt(0) ; i<= 'Z'.charCodeAt(0) ; i++){
obj[String.fromCharCode(i)] = num;
num++;
}
nextNum = num;
return obj;
}
'알고리즘' 카테고리의 다른 글
(프로그래머스)(자바스크립트) n진수 게임 (0) | 2021.07.16 |
---|---|
(프로그래머스)(자바스크립트) 괄호 회전하기 (0) | 2021.07.09 |
(프로그래머스)(자바스크립트)파일명 정렬 (0) | 2021.07.09 |
(프로그래머스)(자바스크립트) 베스트앨범 (0) | 2021.07.07 |
(프로그래머스)(자바) 위장 (0) | 2021.07.07 |
Comments