※ programmers 1단계 풀이 여덟 번째
하샤드 수
❍ 문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
❍ 제한 조건
x는 1 이상, 10000 이하인 정수입니다.
❍ 입출력 예
arr | return |
---|---|
10 | true |
12 | true |
11 | false |
13 | false |
❍ 나의 풀이
function solution(x) {
var answer = true;
// x를 문자열로 바꿔준다.
let slice = x.toString();
// 문자열로 바꾼 x를 각각 배열 안에 넣고 다시 숫자로 만들어준다.
slice = [...slice].map(Number);
// plus 에는 slice 안에있는 각 배열의 자릿수 합 값을 넣어준다.
let plus = slice.reduce((a,b) => a + b, 0);
// divi 에는 x에 plus 값을 나눴을 때 나머지 값을 넣어준다.
let divi = x % plus;
// if문을 써서 divi의 값이 0으로 떨어지면 answer에 true, 그게 아니라면 false를 대입한다.
if(divi == 0){
answer = true;
} else {
answer = false;
}
return answer;
}
❍ 다른 사람의 풀이
function solution(x) {
// num 에 x 대입
let num = x;
// sum 에 0 대입
let sum = 0;
do {
sum += x % 10;
x = Math.floor(x / 10);
} while (x > 0);
return !(num % sum);
}
해석은 언제나 힘듭니다. 직접 해보고 알아오겠습니다.
'JAVASCRIPT > PROGRAMMERS 1단계' 카테고리의 다른 글
Javascript | programmers10 (프로그래머스 1단계 : 정수 내림차순으로 배치하기) (5) | 2022.11.08 |
---|---|
Javascript | programmers09 (프로그래머스 1단계 : 정수 제곱근 판별) (10) | 2022.11.07 |
Javascript | programmers07 (프로그래머스 1단계 : 문자열을 정수로 바꾸기) (6) | 2022.11.02 |
Javascript | programmers06 (프로그래머스 1단계 : 문자열 내 p와 y의 개수) (12) | 2022.11.01 |
Javascript | programmers05 (프로그래머스 1단계 : 자연수 뒤집어 배열로 만들기) (2) | 2022.10.31 |