정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
n은 0 이상 3000이하인 정수입니다.
내 풀이
첫번째 시도
function solution(n) {
var answer = 0;
const temp = []
for(let i=1; i<=n; i++){
if(n%i === 0){
temp.push(i)
}
}
answer = temp.reduce((acc, cur) => acc + cur)
return answer;
}
이렇게 풀었는데 테스트 케이스 하나에서 런타임 에러가 났다
엥....?? 싶었는데
문제 조건을 보니 0<= n <= 3000 이었다.
n이 0인 케이스가 있을 수 있다는 것....
이럴때는 reduce에 초기값을 넣어줘야 한다
function solution(n) {
var answer = 0;
const temp = []
for(let i=1; i<=n; i++){
if(n%i === 0){
temp.push(i)
}
}
answer = temp.reduce((acc, cur) => acc + cur, 0)
return answer;
}
🕹️ 문제를 풀기위해 알면 좋을 것
- array.reduce
const array1 = [1,2,3,4]
const initialValue = 0;
const sumWithInitial = array1.reduce( (accumulator, currentValue) => accumulator + currentValue, initialValue)
// 0 + array1의 각 요소
728x90
'JS 코테' 카테고리의 다른 글
<Javascript-CT> LV1 - 3. 자릿수 더하기 (0) | 2025.06.17 |
---|---|
<Javascript-CT> LV1 - 3. 자연수 뒤집어 배열로 만들기 (0) | 2025.06.17 |
<Javascript-CT> 기초 DAY 26 (0) | 2025.05.12 |
<Javascript-CT> 기초 DAY 25 (0) | 2025.05.12 |
<Javascript-CT> 기초 DAY 23 (1) | 2025.05.11 |