정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
n
은 0 이상 3000이하인 정수입니다.n | return |
---|---|
12 | 28 |
5 | 6 |
입출력 예 #1
입출력 예 #2
1
2
3
4
5
function solution(n) {
return [...Array(n)]
.map((v, i) => i + 1)
.reduce((acc, curr) => n % curr === 0 ? acc + curr : acc, 0)
}
map()
을 사용해서 [0 ~ n]의 값을 가진 배열을 만들고reduce()
를 사용해서 n을 curr로 나눈 나머지 값이 0이면 합계에 현재값을 더해주며 반복문을 실행한다.1
2
3
4
5
6
7
8
9
10
function solution(n) {
let sum = 0; // (1)
// (2)
for (let i = 1; i <= n; i++) {
if (n % i === 0) sum += i;
}
return sum
}
for()
반복문을 실행해주고, n을 i로 나눈 나머지값이 0이면 sum에 i를 더해준다.