function solution(x) {
var answer = true;
const test = String(x).split('');
const num = test.reduce((a,b) => Number(a) + Number(b), 0);
if(x % num === 0) {
answer = true;
} else {
answer = false;
}
return answer;
}
이 문제를 보고 split을 이용하여 숫자를 나누고 더한 뒤, 자연수를 그 값으로 나누면 되겠다고 생각하였다.
처음엔 if문과 map을 사용하여 문제를 풀었는데 계속 테스트 몇개가 틀렸다고 나와서 혹시나 하는 마음에 reduce를 사용해보았는데 통과되었다...
비슷한 로직으로 풀었는데 아직도 어느 부분이 문제였는지 잘 모르겠다..
의문점을 품은채 다른 풀이를 보았는데 정말 충격 그 자체였다.
function Harshad(n){
return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
}
내가 6줄가량으로 푼 문제가 한줄로 끝나다니..
나름대로 이 한줄의 코드를 해석해보았다
난 아직 문제 풀기에 급급한 실력이라 이런 코드를 보면 너무 경이롭다고 느껴진다..
계속해서 코드를 짧게 줄이는 실력을 길러야겠다