1Day 1Algorithm
[DAY 24] 약수의 합
walk_through_me
2019. 10. 25. 01:39
자연수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
코딩테스트 연습 - 약수의 합 | 프로그래머스
자연수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 자연수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
programmers.co.kr
풀이
function solution(n) {
if(n === 0) return 0;
let numbers = [];
for(let i = 0; i <= n; i++) {
if(n % i === 0) numbers.push(i);
}
return numbers.reduce((acc, cur) => acc + cur);
}
1. n이 0인 경우 처리 → 0을 반환함 (숫자를 0으로 나누게되면 NaN이므로, 별도로 처리를 해줌)
2. 약수를 넣어줄 배열 numbers 생성
3. for문을 돌면서 나누어 떨어지는 수를 배열에 추가함
4. reduce()로 배열의 합계를 구해 반환함