★ 문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
(x는 1 이상, 10000 이하인 정수입니다.)
★ 문제 해결 과정
1. 우선 각 자리 수의 합을 구하기 위해 각 자리수를 나눈다.(split)
* split를 사용하기 위해 문자열로 변환한다.
2. for문을 각 문자열의 합을 구한다.
3. 원래 값인 x를 각 문자의 합인 n으로 나눌 때 나머지가 0이 되면 true, 아니면 false로 결과값이 나오도록 한다.
★ 제출한 문제 답안
function solution(x) {
let n = 0;
let arr = String(x).split("");
for(let i = 0; i<arr.length; i++){
n += Number(arr[i])
}
return x % n ===0 ? true : false;
}
'스파르타 (React_6기) 본캠프' 카테고리의 다른 글
2024. 08. 20. (알고리즘 - 콜라츠 추측) (0) | 2024.08.21 |
---|---|
2024. 08. 19. (알고리즘 - 두 정수의 합) (0) | 2024.08.20 |
2024. 08. 14. (알고리즘 - 정수 내림차순으로 배치하기) (0) | 2024.08.14 |
2024. 08. 13. (알고리즘 - 정수 제곱근 판별) (0) | 2024.08.13 |
2024. 08. 12. (알고리즘 - 문자열을 정수로 바꾸기) (0) | 2024.08.12 |