
😎풀이
- 변환이 필요한 문자 매핑
- 역순으로
s
를 순회
2-1. #
이 발견되지 않을경우 각 자리를 매핑된 문자로 변환하여 누산
2-2. #
이 발견될 경우 앞의 두 숫자를 추가로 가져와 맵핑하여 문자로 변환하고 누산
- 누산된 전체 문자열 반환
function freqAlphabets(s: string): string {
const map = new Map<string, string>()
for(let i = 1; i <= 26; i++) {
const curKey = String(i)
const curVal = String.fromCharCode(96 + i)
if(i <= 9) {
map.set(curKey, curVal)
} else {
map.set(curKey + '#', curVal)
}
}
let result = ''
for(let i = s.length - 1; i >= 0; i--) {
const char = s[i]
if(char !== '#') {
result = map.get(char) + result
continue
}
const range = s.slice(i - 2, i + 1)
result = map.get(range) + result
i -= 2
}
return result
};