양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
x
는 1 이상, 10000 이하인 정수입니다.arr | return |
---|---|
10 | true |
12 | true |
11 | false |
13 | false |
1) 자릿수 합 구하기
2) 구한 합으로 x가 나누어 떨어지는지 확인
3) 1과 2를 만족하면 true, 아니면 false 리턴
let n = 123
// 숫자 -> 문자
let str = String(n)
let str = (n+"") // string으로 변환시켜줌
// 문자 -> 숫자
let num = Number(str)
let num = parseInt(str)
Array.from(문자열)
[문자열].split()
function solution(arr) {
let str = String(arr);
let array = Array.from(str);
let x = 0;
for (let i=0; i<array.length; i++) {
x += parseInt(array[i])
}
return arr % x === 0 ? true : false;
}
function solution(x) {
var a = 0;
// x를 문자열로 변환 -> split 함수로 쪼개준다음 배열에 담기
// 배열에 담긴 원소들은 Number로 형변환을 시키고 map 함수를 활용해서 새로운 배열로 만듬
var s = (x+"").split("").map(Number);
for(let i of s){
a += i;
}
return x%a == 0 ? true : false;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12947