문제 : 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/12928
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드 1
function solution(n){
let a = [];
for(let i = 1; i <= n; i++){
if (n % i === 0) a.push(i); // i가 n의 약수라면 배열에 추가
}
return a.reduce((acc, num) => acc + num, 0);
}
- 먼저 빈 배열 a를 만든다.
- 1부터 n까지 숫자를 순회하면서 삼항연산자를 사용하여 n % i === 0 이면 약수이므로 배열에 넣고, 아니면 push()로 추가해준다.
- 배열에 모든 약수가 모이면 reduce()를 사용해 약수들의 총 합을 구한다.
굳이 배열을 쓴거같아서 바로 누적하는 코드로 짜보았다.
코드 2
function solution(n){
let sum = 0;
for(let i = 1; i <= n; i++){
if (n % i === 0) sum += i; // 약수면 바로 누적
}
return sum;
}
- 값을 누적시킬 sum을 0으로 초기화한다.
- 1부터 n까지 순회하면서 약수라면 sum에 바로 더해준다.
'문제 풀이기록 > JavaScript' 카테고리의 다른 글
| [프로그래머스 / Level 1] 평균 구하기 (JavaScript) (0) | 2025.12.28 |
|---|---|
| [프로그래머스 / Level1] 자릿수 더하기(JavaScript) (0) | 2025.12.28 |
| [프로그래머스 / Level 1] 문자열 내 p와 y의 개수 (JavaScript) (0) | 2025.12.27 |
| [ Js ] 나머지 구하기 / 프로그래머스 (0) | 2025.08.24 |
| [ Js ] 두 수의 곱 구하기 / 프로그래머스 (3) | 2025.08.24 |