문제
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
x
는 1 이상, 10000 이하인 정수입니다.
나의 풀이
function solution(x) {
// 자릿수 합 / X = 0 => true
// 자릿수 합 구하기
// // x -> 문자열 -> 배열 -> 모든값 더하기
// x % 자릿수 합 == 0 => return true;
return x % String(x).split("").reduce((sum, e) => sum + (+e), 0) ? false : true;
}
- e를 숫자형으로 바꾸기 위해
+e
,e*1
,e/1
등의 방법 사용 가능 - 값시 0을 반환하는 경우, 값이 true가 되기 때문에
!(x % String(x).split("").reduce((sum, e) => sum + (+e), 0))
로 써도 된다
★!숫자
= false
정확도 테스트 결과
'Coding test' 카테고리의 다른 글
[프로그래머스] x만큼의 간격이 있는 n개의 숫자 (Level 1) (0) | 2022.04.16 |
---|---|
[프로그래머스] 핸드폰 번호 가리기 (Level 1) (0) | 2022.04.16 |
[프로그래머스] 콜라츠 추측 (Level 1) (0) | 2022.04.16 |
[프로그래머스] 제일 작은 수 제거하기 (Level 1) (0) | 2022.04.15 |
[프로그래머스] 정수 제곱근 판별 (Level 1) (0) | 2022.04.15 |