
단순하게 반복문에서 i를 1부터 n까지 i++ 하면서 n % i == 0인지 확인하고, 더해주면 쉽게
풀 수 있지만 그러면 반복문의 효율성이 떨어진다 생각해 수학의 ROOT를 사용하기로 결정했다.
찾아 본 결과 Math.sqrt()로 Root값을 구할 수 있었고, 그 결과 반복 횟수를 O(Root(N))만큼
줄일 수 있었다.
제출한 코드 :
function solution(n) {
let answer = 0;
for(let i = 1; i <= parseInt(Math.sqrt(n)); i++)
{
if(n % i == 0)
{
answer += i;
if (i !== n / i)
{
answer += n / i;
}
}
}
return answer;
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 16. x만큼 간격이 있는 n개의 숫자(난이도 6) (0) | 2024.07.11 |
---|---|
문제 15. 나머지가 1이 되는 수 찾기 (0) | 2024.07.11 |
문제 13. 자릿수 더하기(toString(), 문자열에서 문자 추출) (0) | 2024.07.11 |
문제 12. 평균 구하기(reduce 함수) (0) | 2024.07.11 |
문제 11. 짝수와 홀수 (0) | 2024.07.11 |