Giant Danio Fish
본문 바로가기
알고리즘

프로그래머스 1단계 : 하샤드 수

by 코딩왕자 2022. 11. 3.

프로그래머스 1단계 : 하샤드 수

코딩테스트 연습 > 연습문제 > 하샤드 수


✔ 문제 설명

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.

✔ 제한 사항

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

✔ 입출력 예

arr answer
10 true
12 true
11 false
13 false

✔ 문제풀이

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

✔ 설명

String과 split을 사용해 문자열로 만든뒤 각각 자릿수를 쪼개줍니다. for문을 돌려 Number로 숫자로 변환해준뒤 각 자릿값을 더해 나누었을 때 0이되면 true 아니면 false가 나오게 만듭니다. 참 쉽죠?

✔ 다른사람의 풀이

function Harshad(n){
    return !(n % (n + "").split("").reduce((a, b) => +b + +a ));
}

스플릿과 reduce를 사용해 하샤드 수인지 확인해보았는데요, 한줄로 식은 깔끔하지만 가독성은 아쉬운거같습니다.. 이렇게 푸시려면 정진하셔야겠죠?

댓글


광고 준비중입니다