숫자로 구성된 문자열을 입력받아 해당 번호에 대응하는 알파벳으로 치환하여 출력하는 문제
출처 👉 leetcode_1309
#
이 붙는다.입력: "10#11#12"
string type
출력: "jkab"
string type
10#
은 알파벳 10번째 문자 j
에 대응11#
은 알파벳 11번째 문자 k
에 대응1
은 알파벳 1번째 문자 a
에 대응2
은 알파벳 2번째 문자 b
에 대응alphabets
배열을 생성한다.arr
배열에 할당한다.arr
배열의 요소를 하나씩 확인한다.#
이면 앞 두 글자는 10의 자리를 나타내는 문자이므로 tensDigit
변수에 저장한다.tensDigit
변수에 담긴 값을 현재 인덱스보다 두 번째 앞 인덱스에 재할당한다.arr
배열의 요소를 하나씩 확인하여 alphabets
배열 요소에 맞게 치환한다. (숫자 -> 문자)arr
배열을 하나의 문자열로 합쳐 출력한다.var freqAlphabets = function(s) {
const alphabets = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
let arr = new Array;
arr = s.split("");
for(let i = 0; i < arr.length; i++){
if(arr[i] === "#"){
let tensDigit = "";
tensDigit = arr[i - 2] + arr[i - 1];
arr[i - 2] = tensDigit;
arr.splice(i - 1, 2);
}
}
for(let i = 0; i < arr.length; i++){
const idx = Number(arr[i]) - 1;
arr[i] = alphabets[idx];
}
var result = arr.join("");
return result;
};