문제 설명
- 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
나의 풀이
요즘 React를 통해 개인 프로젝트를 진행하다보니 불변성을 지키기 위해 spread operator를 사용하여 작업하는것이 습관이 되어 아래와같이 문제를 풀었다. 다른 사람들의 풀이를 보니 어렵게 생각하지 말고 쉽게 쉽게 생각하여 문제를 풀어야겠다.
function solution(n) {
let answer = [];
for(let i=1; i<=n; i++) {
if(n % i === 0) answer = [...answer, i]
}
return answer.reduce((acc, cur) => acc + cur, 0);
}
다른 사람의 풀이
function solution(num) {
let sum = 0;
for (let i = 1; i <= num; i++) {
if (num % i === 0) sum += i
}
return sum
}
'programmers > level 1' 카테고리의 다른 글
Programmers - Js - 문자열 내 p와 y의 개수 (0) | 2023.02.16 |
---|---|
Programmers - Js - 자연수 뒤집어 배열로 만들기 (0) | 2023.02.16 |
Programmers - Js - 자릿수 더하기 (0) | 2023.02.15 |
Programmers - Js - 평균 구하기 (0) | 2023.02.15 |
Programmers - Js - 짝수와 홀수 (0) | 2023.02.15 |