[Programmers] 하샤드 수 (JS)

nRecode·2020년 9월 22일
0

Algorithm

목록 보기
14/48

문제

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

입출력 예

arrreturn
10true
12true
11false
13false

접근

음 간단한 문제였다... input이 몇째 자리 숫자인지 매번 확인해야하는 과정을 없애기 위해서 각 자리수를 배열로 가지는 변수를 이용하여 합을 구하고 이로 input이 나머지를 갖는지 가지지 않는 지 확인하면 되는 문제이다.

풀이

function solution(x) {
    // x의 자리수의 제한이 없음 -> 반복문 사용해서 각 자릿 수의 합을 구한다.
    var answer = false;
    let sum = 0;
    let xArr = (x + '').split('');
    xArr.map((val) => {
        return sum += Number(val);
    });
    

    //  x가 sum으로 나누어 떨어지면 true
    if(x % sum === 0){
        answer = true;
    }
    return answer;
}
profile
안정성, 확장성 있는 서버를 구축하고 가꾸는 개발자를 목표로 공부하고 있습니다. 🤔🤔🤔🤔 부족하기에 맞지 않는 내용이 있을 수 있습니다. 가감없이 피드백 해주시면 정말 감사하겠습니다..🙏

0개의 댓글