[Leetcode] 1844. Replace All Digits with Characters (JS)

OROSY·2021년 5월 7일
0

Algorithms

목록 보기
19/38
post-thumbnail

출처

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

실행 결과

profile
Life is a matter of a direction not a speed.

0개의 댓글