코딩테스트/Programmers (프로그래머스)

[프로그래머스] 하샤드 수 - Javascript (Lv.1)

지윤공원🌳 2021. 4. 11. 18:17
728x90

📖 문제 설명

양의 정수 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) {
    var answer = true;
    let arr = String(x).split('');
    let num = arr.reduce((a, b) => Number(a) + Number(b));
    if(x % num != 0){
        return false;
    }
    return answer;
}

 

🎤 코드 설명

  • 입력받은 숫자 x를 문자열로 바꾸고 split('')함수를 통해 배열로 바꿉니다. 
  • reduce() 함수로 배열의 합을 구합니다. (15 -> 1 + 5 -> 6)
  • x를 위에서 구한 값으로 나눴을 때 나머지가 0이 아니면 false, 나머지가 0이면 true를 return 합니다. 

 

📜 채점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

💬 배운 것

  • reduce()와 split()에 대해 더 잘 알게 되었습니다. 

 

 

 

코딩테스트 연습 - 하샤드 수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하

programmers.co.kr

 

728x90