코딩테스트(JavaScript) 프로그래머스 : 하샤드 수

Parkboss·2022년 8월 30일
0

코딩테스트

목록 보기
6/19

✅문제

양의 정수 x가 하샤드 수이려면
x의 자릿수의 합으로 x가 나누어져야 합니다.

예를 들어 18의 자릿수 합은 1+8=9이고,
18은 9로 나누어 떨어지므로 18은 하샤드 수입니다.

자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수,
solution을 완성해주세요.

❕ 제한사항

x는 1 이상, 10000 이하인 정수입니다.

📢 입출력 예제

풀지 못하였노라....


💻 다른 사람 풀이

function solution(x) { // x = 18
    var sum = 0;
    var arr = String(x).split(""); // [1,8]
    
    for(let i=0; i<arr.length; i++){
        sum += Number(arr[i]) // 1+8
    }
    return (x % sum == 0) ? true:false;
}

다른 사람 풀이 방식

  • x를 split 을 사용해 자릿수로 나누어 준다.
  • 여기서 String을 사용해 문자열로 x를 만들어주고 나누어 준다.
  • for 문을 돌려 나누 자릿수들을 더해준다
  • 여기서! 왜 Number를 사용하여 arr[i]를 sum에 더해주는지 이해가 안 간다.
  • 다른 풀이 보니 sum += arr[i]*1을 한 풀이도 있었다. 왜 그냥 sum += arr[i] 안되는지 아직도 모르겠다..
  • 마지막은 삼 항 연산자인 x % sum == 0 즉, x와 더한 값을 나누어떨어지면 true이고 아니면 fasle이다.
profile
ur gonna figure it out. just like always have.

0개의 댓글