어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다.
풀이 (본인)
1 2 3 4 5 6 7 8 9 10 11
functionsumDivisor(inputNum) { var sum = 0; for(var num = 1; num<=inputNum; num++){ if(inputNum%num===0){ sum +=num; } } return sum; } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log(sumDivisor(12)); // 28
풀이 (다른 사람)
1 2 3 4 5 6 7 8 9 10 11 12 13
functionsumDivisor(num) { let n = num; let a = [] while(0 < num){ if(n % num === 0){ a.push(num) } num-- } return a.reduce((a,b) => a+b); } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log(sumDivisor(12)); // 28
배운점
배열의 요소로 담아 나중에 한번에 더하는 코드를 작성 할 수 있다는 것을 배웠다.
느낀점
대부분의 사람들은 본인이 작성한 코드와 비슷하게 작성을 하였짐만 배열의 요소를 이용하여 코드를 작성 한 코드를 보았다.
배열의 요소를 이용하게 되면 함수를 한번 더 사용해야 하므로 속도가 느려질것같다.(아마 문제에서 배열을 보여줘서 배열을 이용한 것 같다.)