하샤드수

박서현·2023년 8월 21일
0
post-thumbnail

🐥하샤드 수

문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.


제한사항
x는 1 이상, 10000 이하인 정수입니다.




🔸나의 풀이

//while문 사용. 1부터 시작해서 나머지가 1인 수 나오면 break
function solution(n) {
    //n을 문자열로 바꾸기
    n = n + ""
    //비어있는 새로운 배열 생성
    let arr = []
    //문자열로 바뀐 n을 배열에 한 문자씩 넣기["1","1","8","3","7","2"]
    for(let i = 0; i < n.length; i++) {
        arr.push(n[i])
    }
    //메서드를 사용해서 내림차순으로 정렬
    arr.sort((a, b) => b - a)
    const result = arr.join().replaceAll(',','')
    return +result
}
console.log(solution(118372))

🔹다른 사람의 풀이

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개의 댓글