프로그래머스: 하샤드 수
in Algorithm
프로그래머스 ‘하샤드 수’ 문제.
양의 정수 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;
}
- 숫자 x를 문자열로 바꾼뒤 배열로 만들기
- reduce를 이용해서 각 원소의 합 구하기 (숫자로 다시 변경후 합 구하기)
- 원소의 합으로 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;
}
수업시간에 나랑 비슷하게 풀이한 내용! ㅎㅎㅎ