728x90
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.
예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.
자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 사항
- x는 1 이상, 10000 이하인 정수입니다.
입출력 예
10 | true |
12 | true |
11 | false |
13 | false |
문제 풀이 방법
- 나는 이 문제를 문자열로 바꾸어 Array 메서드를 이용해 풀려했다.
- 우선 숫자로 입력된 인자를 문자열로 바꿔주고 배열안에 스프레드 연산자를 이용해 펼쳐준다.
- 배열을 reduce() 메서드를 이용해 합을 구해준다.
- 이후 나머지가 0인 수는 true, 아닌 수는 false를 반환해준다.
내가 작성한 코드
function solution(x) {
const total = [...("" + x)].map(x => +x).reduce((p, c) => p + c, 0)
if(x % total === 0){
return true;
}
else{
return false;
}
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
1Level / 연습문제 / 삼총사 (0) | 2022.10.24 |
---|---|
1Level / 연습문제 / 수박수박수박수박수박수? (0) | 2022.10.24 |
1Level / 연습문제 / 2016년 (0) | 2022.10.10 |
1Level / 연습문제 / 소수찾기 (0) | 2022.10.06 |
1Level / 연습문제 / 이상한 문자 만들기 (0) | 2022.10.05 |