알고리즘

프로그래머스 Level 1 -하샤드 수(Javascript)

또롱또 2022. 5. 13. 10:58
728x90

https://programmers.co.kr/learn/courses/30/lessons/12947

function solution(x) {
    // 정답을 받을 변수
    var answer = true;
    
    // 합을 구할 변수
    let sum = 0;
    // 기존의 들어온 입력값을 보관할 변수
    let newX = x;
    
    // x > 0 일경우
    while(x > 0){
        // x에서 10을 나누고 남은 나머지값들
        // x의 1의자리 숫자를 sum에 더해준다
        sum += x%10;
        // x를 10으로 나누면 어찌됬든 소수점이 나오는데, 나오는 소수점은 다 버린다.
        x = Math.floor(x/10)
    }
    
    // 입력받은값을 숫자의 합으로 나눴을때, 나머지가 0이나오면 false (자바스크립트는 = false)
    // 나머지는 true
    newX % sum ? answer = false : answer = true;
    
    return answer; 
}

 

나는 그냥 숫자를 하나씩 풀어내면서 해결해 냈다.

아래는 다른사람의 정답코드이다. 한줄이라니..

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

 

 

728x90