V-logue

[항해99] 프로그래머스 - 하샤드 수 본문

항해 99/프로그래머스 Algo

[항해99] 프로그래머스 - 하샤드 수

보그 2022. 5. 17. 22:25

에.. 대충 어떤 문제냐면, 

이런 문제다.

function solution(x) {
    var arr = (x+"").split("").map(Number)
    
    for (let i=0; i< arr.length ; i++)
    if (parseInt(x) % arr.reduce((acc , cur) => acc+cur) === 0) {
        return true
    } else if (parseInt(x) % arr.reduce((acc , cur) => acc+cur) !== 0){
        return false
    }
    
}

이전에 사용했던 reduce함수를 다시 사용하면 되는데, 하샤드 수가 18이라고 치면 1+8 =9고 

18 % 2 === 0 이 되야하기 때문에, 일단 18이라는 수를 나눠줄 필요가 있다.

 

(x+"").split("")은 그런 의미에서 들어간 것이고, 결국 숫자의 합이기 때문에 문자열을 map(Number)를 통해

다시 숫자로 바꿔줄 필요가 있다.

 

x는 1이상 10000이하의 양의 정수라고 했으나 딱히 중요한 것 같지 않으니 패스했고

parseInt로 x가 정수라는 것만 표현했다.

 

그 이후는 생략하겠다.

 

=== 0 이나오면 true // !== 0 이면 false

Comments