프로그래머스 JS LV1

LV1 04 하샤드 수, 정수 내림차순으로 배치하기, 나머지가 1이 되는 수 찾기

와라리요 2022. 12. 8. 18:48

하샤드 수

문제: 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. x가 하샤드 이면 trun 아니면 false를 반환하라.

풀이: x를 split를 이용해 한 글자씩 나눠 배열로 만들고 reduce()를 이용해 다 더한 후 x에 %하여 === 0을 한다.

function solution(x) {
    let num = x.toString().split('').reduce((a, b) => Number(a) + Number(b));
    return x % num === 0;
}

 


 

정수 내림차순으로 배치하기

문제: 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 return.

풀이: 정수를 문자열로 바꾼 뒤 split()로 배열로 바꾼 뒤 sort()를 이용해 바꾸고 join()으로 합친 후 숫자형으로 바꾼다.

function solution(n) {
    return Number(n.toString().split('').sort((a, b) => b - a).join(''));
}

 


 

나머지가 1이 되는 수 찾기

문제: 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return

풀이: ...

function solution(n) {
    for (let i = 0; i < n; i++) {
        if (n % i === 1) {
            return i
        }
    }
}