문제설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수,
solution을 완성해주세요.
제한사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
입출력 예 설명
입출력 예
- #112의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예
- #25의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
풀이
- 약수 : 어떤 수를 나누었을 때 나누어 떨어지는 수 → 나머지가 0인 수
- n을 i로 나눌 때, i는 n보다 같거나 작아야한다. → 12를 나눌 때 i의 범위는 0 보다 크거나 12보다 작아야한다.
- push메소드로 배열 answer에 숫자n의 배열을 원소로 넣어준다.
- reduce메소드로 원소의 합을 구한다.
function solution(n) { const answer = []; for(let i = 0; **i <= n**; i++){ if(n % i === 0){ answer.push(i); } } const sum = answer.reduce((a,b) => a + b, 0); return sum; }
function solution(n) {
const answer = [];
for(let i = 0; **i <= n**; i++){
if(n % i === 0){
answer.push(i);
}
}
const sum = answer.reduce((a,b) => a + b, 0);
return sum;
}
push()
- 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환.
- 인자로 배열 끝에 추가할 요소를 받는다.
const fruits = ['🍎', '🍌', '🍇'];
const count = animals.push('🍒');
console.log(count); // 4
console.log(fruits ); // ['🍎', '🍌', '🍇','🍒']
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push
Array.prototype.push()
push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.
developer.mozilla.org
reduce()
- 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환
- 배열의 모든 값 합산
var number = [0, 1, 2, 3];
var sum = number.reduce(function (accumulator, currentValue) {
return accumulator + currentValue; }, 0);
console.log(sum); // 6;
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
Array.prototype.reduce()
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
developer.mozilla.org
'코딩테스트' 카테고리의 다른 글
Level1_비밀지도 (0) | 2020.09.03 |
---|---|
Level1_가장 큰 수 (0) | 2020.08.31 |
Level1_K번째 수 (0) | 2020.06.16 |
Level1_가운데 글자 가져오기 (0) | 2020.06.11 |
Level1_완주하지 못한 선수 (0) | 2020.06.09 |