프로그래머스: 하샤드 수




프로그래머스 ‘하샤드 수’ 문제.

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.

예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.

자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수



나의 해결방안

case1

function solution(x) {
    var answer = true;
    let sum = 0;
    const num = String(x).split('').reduce((a,b) => {
       return Number(a)+Number(b);
    })
    if(x % num === 0) return true;
    else return false;
    
    
    return answer;
}
  1. 숫자 x를 문자열로 바꾼뒤 배열로 만들기
  2. reduce를 이용해서 각 원소의 합 구하기 (숫자로 다시 변경후 합 구하기)
  3. 원소의 합으로 x를 나누었을때 나머지가 0이면 true 아니면 false





case 2

function solution(x) {
	  //toString은 변수 뒤에만 사용할 수 있다. 111.toString 안됨
    const sum = x.toString().split('').reduce((a,b) => {return Number(a) + Number(b)}, 0)   
    return x % sum === 0;
}

수업시간에 나랑 비슷하게 풀이한 내용! ㅎㅎㅎ










© 2018. by sora

Powered by sora