문제 풀기/JavaScripts
문제 14. 악수의 합(Math.sqrt())
kagan-draca
2024. 7. 11. 19:16
단순하게 반복문에서 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;
}