-
하샤드 수!
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
- x는 1 이상, 10000 이하인 정수입니다.
입출력 예
문제 풀이
function solution(x) { let sum = String(x).split("").reduce((acc, cur) => acc + Number(cur), 0); return !(x % sum) }
풀이입니다.
String(x) 를 통해서 인자를 문자열로 바꿔주고 split("")을 통해 배열로 나눠줍니다.
reduce()를 사용하기 위해서 말이죠.
reduce()를 이용하여 초기값은 0으로 설정해주고 배열 수만큼 반복해서 acc에 cur값을 숫자로 변형시켜 더해줍니다.
그 후 x % sum 을 통해 그 값이 완전히 나누어진다면 true를 리턴하고 그렇지 않으면 false가 리턴되도록 합니다.
다른 사람들의 풀이
function Harshad(n){ var result ; var str = n.toString(); var sum = parseInt(str[0]); for(let i=1 ; i< str.length ;i++){ sum += parseInt(str[i]); } result = n % sum ? false : true return result; }
'코딩 기록 > 자바스크립트 알고리즘' 카테고리의 다른 글
(자바스크립트 알고리즘) 시저 암호 - kimyang-sun (0) 2020.10.12 (자바스크립트 알고리즘) 콜라츠 추측 - kimyang-sun (0) 2020.10.12 (자바스크립트 알고리즘) 2016년 - kimyang-sun (0) 2020.10.12 (자바스크립트 알고리즘) 직사각형 별찍기 - kimyang-sun (0) 2020.10.11 (자바스크립트 알고리즘) 최대공약수와 최소공배수 - kimyang-sun (0) 2020.10.11 댓글