🔥 Algorithm/Programmers
[프로그래머스] 3차 압축 (js)
Lennon
2021. 10. 29. 18:13
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/17684?language=javascript
function solution(msg) {
const alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
const answer = [];
for(let i = 0; i < msg.length; i++){
for(let j = msg.length; j > i; j--){
if(alpha.includes(msg.slice(i,j))){
answer.push(alpha.indexOf(msg.slice(i,j))+1);
alpha.push(msg.slice(i,j+1));
i+=(j-i-1);
}
}
}
return answer;
}
가장 긴 문자열을 찾아 answer에 인덱스를 입력한 후 alpha에 push한다.
문자열의 길이만큼 i에 (j-i-1)을 더해 alpha에 올바르게 push될 수 있도록 한다
ex) kakao -> ka, ak, kao 가 되어야함 // i+=(j-i-1)을 해주지 않으면 -> ka, ak, kao, ao, o 이렇게 들어감.
다른 사람들은 while로 풀었지만 for문 인덱스 조절로 풀어서
다른 풀이들보다 시간을 효율적으로 줄일 수 있었다.
728x90
반응형