https://programmers.co.kr/learn/courses/30/lessons/12947
function solution(x) {
var answer = true;
var total = 0;
//자리수의 합
var numToStr = x.toString(10);
var numLen = numToStr.length;
for(var i =0; i<numLen; i++){
total = total + parseInt(numToStr[i],10);
}
//하샤드 수 판별
if(x%total !== 0){
answer = false;
}
return answer;
}
코드가 동일한 건 사고방식, 접근 방법이 변하지 않아서..?
function Harshad(n){
return !(n%(n+'').split('').reduce(function (i, sum) {return +sum + +i;}));
}
function solution(x) {
var answer = true;
var sum =0;
var numToString = x.toString();
var lengthOfNumber = numToString.length;
for (var i=0; i<lengthOfNumber; i++){
sum = sum + parseInt(numToString[i]);
}
if (( x % sum) === 0){
answer = true;
} else {
answer = false;
}
return answer;
}
number, string 관련 method: toString(), parseInt(), split()
JS의 암시적 형 변환: JS 암시적,묵시적 형 변환관련문서
+ 연산자는 문자가 숫자보다 우선. 숫자 + 문자 => 문자로 형 변환이 이루어진다.