[TIL] 24.01.10

sssujijjl·2024년 1월 10일

[TIL]

목록 보기
15/51

[문제]

  • 하샤드의 수 구하기

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
ex) 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.

[시도]

function solution(x) {
    let result = 0;
    x = x.toString().split('');
    
    for(let i=0; i<x.length; i++) {
        result += Number(x[i]);
    }
    
    x = Number(x.join(""));
    
    if (x % result === 0) {
        return true;
    } else {
        return false;
    }
}

// 자릿수의 합을 더해줄 변수를 만들어준다.
// 숫자인 x를 문자열로 변환해준 후 분할해준다.
// 반복문을 통해 자릿수를 더 해준다.
// x를 다시 숫자로 만들어 준 후에 나눠주면 된다.

[배운점]

숫자를 문자로 변경하고 분할하고, 다시 숫자로 변경하지 않으려고,
다른 변수를 만들어 할당하려고 했는데 할당이 제대로 되지 않는다....
어떻게 해야 더 간단하고 쉽게 작성할 수 있는지 고민해 봐야겠다.

0개의 댓글