반응형
프로그래머스 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) {
let answer = true;
let z = x.toString().split('').map(e => parseInt(e)).reduce((a, b) => a + b);
console.log(z);
return answer = x % z === 0 ? true : false;
}
숫자를 문자화, 배열화하고 map(parseInt())메서드로 배열내의 문자를 숫자화합니다. 다음 reduce()메서드로 숫자를 더해준 뒤 변수 x를 z로 나눈 나머지가 0이라면 하샤드 수이므로, true를
아니라면 false를 반환하도록 합니다.
※ 다른 사람의 풀이
function solution(x) {
var a = 0;
var s = (x+"").split("").map(Number);
for(let i of s){
a += i;
}
return x%a == 0 ? true : false;
}
s = x에 빈 문자열을 더해 문자화하고 배열로만들어 내부를 숫자화 합니다. for of문을 사용하여 s변수의 인덱스 값을 합한 a값으로 x를 나눈 나머지 값이 0이라면 true 아니라면 fasle를
반환합니다.
반응형
'알고리즘' 카테고리의 다른 글
프로그래머스 1단계 : 나누어 떨어지는 숫자 배열 (4) | 2022.11.15 |
---|---|
프로그래머스 1단계 : 정수 제곱근 판별 (4) | 2022.11.14 |
프로그래머스 1단계 : 평균 구하기 (2) | 2022.11.13 |
프로그래머스 1단계 : 정수 내림차순으로 배치하기 (4) | 2022.11.13 |
프로그래머스 1단계 : 가운데 글자 가져오기 (4) | 2022.11.10 |
댓글