[Programmers #12928] - 약수의 합

G_NooN·2024년 1월 4일
0

Algorithms

목록 보기
6/33
post-thumbnail

(Lv. 1) 약수의 합 (문제 링크)

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 return하는 solution 함수를 완성하라.

제한 조건

  1. n은 0 이상 3,000 이하의 정수다.

입출력 예시


해결 방법

  1. 합계를 출력할 변수를 선언한다.
  2. 1부터 n까지 반복하며 n의 약수를 탐색한다.
    (n의 약수 x = n을 x로 나누었을 때 나머지가 0)
  3. 약수가 나올 때마다 합계에 더한다.
  4. 합계를 출력한다.

코드

function solution(n) {
  let answer = 0; // 합계

  for (let i = 1; i <= n; i++) {
    // 약수 = n % i === 0
    if (n % i === 0) {
      // 약수 발견 시 합계에 추가
      answer += i;
    }
  }
  // 합계 출력
  return answer;
}

시행착오

  • 처음에는 약수를 다 구한 뒤에 합계에 더하는 방식으로 구현했다.
    하지만, 약수를 다 구하지 않고 발견할 때마다 합계에 추가시켜도 같은 작업을 수행하기 때문에, 기존 방식보다 더 빠르게 동작할 수 있다.
profile
쥐눈(Jin Hoon)

0개의 댓글