하샤드 수

hyuri·2023년 9월 14일
0

코딩테스트 연습

목록 보기
7/70

내가 작성한 답

function solution(x) {
    let a = (x+'').split('').map(a => +a).reduce((b,c) => b + c, 0);
    return x % a == 0 ? true : false;;
}

속도 위주의 답

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

    return !(num%sum);
}

사용한 함수

split - 문자열을 배열로 구분
map - 배열을 숫자로 변환
reduce - 모든 배열 합산하기 위해 사용

가독성은 내가 작성한 코드가 더 좋을 수 있지만, 반복문을 사용한 답은 더 빠른 성능을 보일 수도 있다.
따라서, 목적과 요구 사항에 따라 선택할 수 있다.

profile
개발자가 되고 싶은 지망생

0개의 댓글