[프로그래머스 lev1/JS] 하샤드 수

woolee의 기록보관소·2022년 10월 22일
0

알고리즘 문제풀이

목록 보기
8/178

문제 출처

프로그래머스 lev1 - 하샤드 수

문제 요약

양의 정수 x가 하샤드 수라면, x의 자릿수들의 합으로 x가 나눠져야 한다. x가 하샤드 수인지 아닌지 판별하는 함수 완성하기

나의 풀이

sum에 자릿수의 합을 저장한 뒤, 나눠떨어지면 true 반환, 아니면 false 반환

function solution(x) {
  let sum=0; 
  let num=x; 
  while (x>0) {
    sum += x%10;
    x=Math.floor(x/10);
  }

  if (num%sum===0) return true;
  else return false; 
}

console.log(solution(11));

다른 풀이

true==1, false==0 사용하기

function solution(x) {
  let sum=0; 
  let num=x; 
  while (x>0) {
    sum += x%10;
    x=Math.floor(x/10);
  }

  return !(num%sum);
}

console.log(solution(12));

재귀를 통한 풀이,
*1를 통한 형변환

function solution(x,i=0,sum=0) {
  // console.log(typeof (0 + String(x)[0]*1));
  //console.log(typeof (String(x)[0]*1)); // => *1해서 number로 만드는 거 신기하다 
  return String(x).length==i ? x%sum==0 : solution(x,i+1,sum + String(x)[i]*1);
}

console.log(solution(11));
profile
https://medium.com/@wooleejaan

0개의 댓글