javascript/알고리즘

[프로그래머스]하샤드 수

소영 2021. 6. 29. 14:49

주어진 x의 자릿수가 x의 자릿수의 합으로 나누어져야 한다.

ex) x = 18 이면 1+8=9 이고 18/9의 나머지가 0이 되어야 함

 

입출력 예

10 true
12 true
11 false
13 false

 

1. x의 숫자를 문자형으로 변경한다 -> .toString();

ex) x=12345 -> x='12345'

 

2. 문자형으로 변경된 x를 개별의 숫자로 나눈다. -> .split(' ');

ex) x='12345' -> x=['1','2','3','4','5'];

 

3. 개별로 나눈 숫자를 x의 길이만큼 더한다. 

 

4. 더한 값을 정수로 변환 -> parseInt();

 

5. x%(더한 값을 정수로 변환한 것) 이 0 이어야 true 리턴

 

function solution(x) {
    var answer = true;
    let num =0;
    let string = x.toString();
    let split = string.split('');
    for(let i=0; i<split.length; i++){
        num += parseInt(split[i]);
   
    }
            if(x%num===0){
           return true;
        }else if(x%num!==0){
            return false;
        }
    
}

테스트 통과 ^3^