본문 바로가기

코딩테스트

Level1_약수의 합

 

 

문제설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수,

solution을 완성해주세요.

제한사항

  • n은 0 이상 3000이하인 정수입니다.

입출력 예

입출력 예 설명

입출력 예

  • #112의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

입출력 예

  • #25의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

풀이

  1. 약수 : 어떤 수를 나누었을 때 나누어 떨어지는 수 → 나머지가 0인 수
  2. n을 i로 나눌 때, i는 n보다 같거나 작아야한다. → 12를 나눌 때 i의 범위는 0 보다 크거나 12보다 작아야한다.
  3. push메소드로 배열 answer에 숫자n의 배열을 원소로 넣어준다.
  4. 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