프로그래머스) 하샤드 수

minji jeon·2022년 7월 18일
0

알고리즘

목록 보기
24/29
post-thumbnail

1. 문제

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

2. 접근

우선 각자리수를 더해야 하므로 숫자를 잘라야 한다.
잘라서 더한뒤 나누어 떨어진다면 하샤드 수인셈이다.
숫자를 누적되게 더할때는 reduce 함수를 쓸수 있다.
그리고 조건문을 이용해서 true와 false를 구분해줄수 있다.

3. 내답

function solution(x) {
  let arr = x.toString().split("")
    return x % arr.reduce((a,b)=> a  * 1 + b * 1) === 0 ? true : false  
 } 

숫자를 배열로 만들어준뒤
%를 이용하여 누적값이 나누어떨어진는지 확인할 수 있다.
reduce를 사용시 배열의 값이 string이므로 숫자를 곱하여 숫자로 바꾸어 준 뒤 누적값을 더하도록 해준다.

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글