[LeetCode] Sum of Digits in Base K

준규·2022년 9월 20일
0

숫자 n이 주어지고 (10진수) base k 가 주어질 때 10진수인 n을 k진수로 바꾼 숫자의 각 자릿수의 합을 리턴하는 문제이다

Example을 보자

1번 예시를 보면 n=34 , k = 6일 때 34를 6진수로 바꾸면 54가되고

54의 각 자릿수인 5 + 4를 하면 9가 되므로 9가 정답이 된다

var sumBase = function(n, k) {
    let result = 0;
    if(k !== 10) {
        const convert = n.toString(k);
        const numArr = convert.split('');
        numArr.forEach((num) => result += parseInt(num));
    }else {
        const numArr = String(n).split('');
        numArr.forEach((num) => result += parseInt(num));
    }
    
    return result
};

일단 만약 k가 10이라면 변환할 필요가 없으므로 주어진 n의 자릿수를 그대로 더하면 된다

k가 10이 아니라면 toString을 이용하여 n을 k진수로 바꿔주고 각 자릿수를 기준으로 쪼개어서 배열에 넣어주었다

그 다음 배열 값들을 더해서 result 변수에 넣어주었다

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글