1844. Replace All Digits with Characters
실제로 이번 문제는 답을 구하는 과정 자체에서는 어렵지 않았지만, 답을 구하려면 함수를 정의해야했다.
shift('a', 5) = 'f'
shift('x', 0) = 'x'
이처럼 첫번째 인수로 알파벳, 두번째 인수로 숫자를 넣어 숫자만큼 뒤로 이동하는 로직의 함수였다. 머리로 이해하는 것은 쉽지만 실제로 코드로 구현하려면 유니코드 등 굉장히 복잡할 것만 같았다.
그래서 역시나 총동원한 검색 스킬! string
에 대한 MDN 공식 문서를 반복하여 읽으면서 이해한 결과 아래와 같은 코드를 짤 수 있었습니다.
const unicode = str.charCodeAt()
return String.fromCharCode(unicode + num)
실제로 알고리즘 공부나 사용이 될 수 있을만한 코드일지는 모르겠으나.. 정답은 나왔으니 넘어가는 걸로!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var replaceDigits = function(s) { let res = '' const shift = function(str, num) { const unicode = str.charCodeAt() return String.fromCharCode(unicode + num) } for(let i = 0; i < s.length; i++) { if (i % 2 === 1) { res += shift(s[i-1], Number(s[i])) } else { res += s[i] } } return res }; | cs |