반응형
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. |
제한 조건
|
초기 코드
function solution(x) {
var answer = true;
return answer;
}
코드 풀이 설명
function solution(x) {
// 더해줄 sum에 초기값 0 할당
let sum = 0;
// 자릿수를 더하기 위해 문자열로 변환하여 쪼개기
let result = String(x).split('');
// sum의 초기값에 숫자로 변환한 result의 i번째 인덱스를 더해줌
for (let i = 0; i < result.length; i++) {
sum += Number(result[i]);
}
// x를 sum으로 나눴을 때 나누어 떨어지면 true, 아니면 flase
return (x % sum === 0) ? true : false;
}
- X는 1 이상, 10000 이하인 정수이므로 자릿수를 더해주기 위해 문자열로 변환한다.
- 문자열로 변환한 후 for문을 이용해 result의 길이만큼 돌린 후, sum에 할당되어있는 0에 result의 i번째 인덱스들을 숫자로 바꿔 더해준다.
- 그 후 원래 숫자인 X를 sum으로 나눈 나머지가 0일 경우 true를 반환하고 아닐 경우 false를 반환한다.
프로그래머스 코딩테스트 연습 - 하샤드 수
프로그래머스 코딩테스트 연습 - 다른 문제 풀이(자바스크립트)
반응형