프로그래머스 #JS - 하샤드 수

SSO·2020년 1월 13일
0

프로그래머스Lv1

목록 보기
31/47
post-custom-banner

문제

https://programmers.co.kr/learn/courses/30/lessons/12947

풀이

  1. 2020
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;
}

더 생각해보기

   코드가 동일한 건 사고방식, 접근 방법이 변하지 않아서..?

   숫자 형변환(+연산자) + 배열화(split) + reduce() 활용한 예시
function Harshad(n){
  return !(n%(n+'').split('').reduce(function (i, sum) {return +sum + +i;}));
}
  1. 2019
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 암시적,묵시적 형 변환관련문서
  + 연산자는 문자가 숫자보다 우선. 숫자 + 문자 => 문자로 형 변환이 이루어진다.

profile
happy
post-custom-banner

0개의 댓글