코드 풀이

하샤드 수

SammyK 2022. 3. 14. 14:41

풀이:

function solution(x) {
    return x % String(x).split('').reduce((a,b) => a + parseInt(b), 0) == 0 ? true:false; 
}

일단 받은 정수값이 하샤드수라면 나머지값이 0 이 되기에 

자릿수를 더하기 위해,

먼저 정수를 string 으로 바꾸어주고 split 해서 나눠준다음 reduce 를 사용해 누적값을 정수로 다시 바꾼값을

받은 정수 x 랑 나누었을때 나머지값이 0 이라면 True, 아니면 False 값을 리턴하게 했다.

 

수정:

function solution(x) {
    return x % String(x).split('').reduce((a,b) => a + parseInt(b), 0)? false:true; 
}

% 를 썻을때 이미 받는 값이 0 아니면 다른값이기에  좀더 짧아졋다.

 

다른사람 풀이

function solution(x) {
    let num = x;
    let sum = 0;
    do {
        sum += x%10;
        x = Math.floor(x/10);
    } while (x>0);

    return !(num%sum);
}

 

'코드 풀이' 카테고리의 다른 글

최소 직사각형  (0) 2022.03.14
같은 숫자는 싫어  (0) 2022.03.14
콜라츠 추측  (0) 2022.03.14
정수 제곱근 판별  (0) 2022.03.14
제일 작은 수 제거하기  (0) 2022.03.14