치악산 복숭아
[프로그래머스] 하샤드 수 - Javascript 본문
링크
programmers.co.kr/learn/courses/30/lessons/12947
문제 설명
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.
제한 조건
- x는 1 이상, 10000 이하인 정수입니다.
문제 풀이
1) 코드 설명
(1) 매개변수로 받은 수 x를 string형으로 바꾼다.
(2) res에 숫자형으로 바꾼 x의 각 자릿수의 합을 더한다.
(3) x가 res로 나누어 떨어진다면 true를 return하고, 그렇지 않다면 false를 return한다.
2) 코드
//200916
function solution(x) {
var answer = true;
var str = x.toString();
var res = 0;
for(var i = 0; i<str.length; i++)
res += Number(str.charAt(i));
(x % res == 0) ? answer = true : answer = false;
return answer;
}
수정한 코드
//210507
function solution(x) {
let result = 0;
x.toString().split("").forEach(item => result += parseInt(item))
return x%result == 0;
}
ES6 문법 써보려고 노력한 흔적...⁺◟( ᵒ̴̶̷̥́ ·̫ ᵒ̴̶̷̣̥̀ )
속도는 숫자로 접근하는게 더 빠르다고 한다 toString이랑 parseInt 써서 형변환 이루어져서 그런듯🤔
그래도 새로운 시도를 해봤다는 것에 (나 혼자) 의의를!
'PS:0' 카테고리의 다른 글
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - C++ / Javascript (0) | 2020.09.16 |
---|---|
[프로그래머스] 행렬의 덧셈 - Javascript (2) | 2020.09.16 |
[프로그래머스] 최대공약수와 최소공배수 - Javascript (0) | 2020.09.16 |
[프로그래머스] 키패드 누르기 - Javascript (2) | 2020.09.16 |
[프로그래머스] 짝수와 홀수 - Javascript (0) | 2020.09.16 |
Comments