set
-
[프로그래머스 Level 1] 약수의 합알고리즘 문제풀이 2020. 1. 7. 21:13
문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 이 문제는 비교적 해결하기 쉬운 문제였지만, for문의 반복 범위를 고려하지 않으면 시간초과로 실패할 수 있는 문제이다. 해답은 [프로그래머스 Level 1] 소수찾기와 동일하다. 어떤 수 n은 n의 제곱근 이하의 수와 그 이상의 수의 곱으로 표현이 가능하다. 그러므로 i를 n의 제곱근까지만 반복해주면 이 문제를 시간복잡도 O(root n)으로 해결 가능하다. function solution(n) { var factor = new Set(); if(n == 0){ return 0; } for(var i ..