자바스크립트
[JavaScript] n까지의 약수 구하기 - 기사단원의 무기 (프로그래머스)
슈크림 붕어빵
2023. 10. 30. 15:44
function solution(number, limit, power) {
var answer = 0;
var numbers = Array(number+1).fill(0);
for (var i=1;i<=number;i++){ //주어진 숫자까지 돌아감
var j=0; //초기는 0
while(j<=number){ //i의 배수에 1씩 더함.
numbers[j]++;
j=j+i; //i의 배수를 찾기 위해 i를 더함
}
}
for (var i=1;i<=number;i++){
if(numbers[i]<=limit){
answer+=numbers[i];
}
else{
answer+=power;
}
}
return answer;
}
처음에는 시간초과로 틀렸었다.
해결 방법
1. n까지 돌리면서 n의 배수에 +1을 해줘 약수의 수를 한번에가 아니라 순차적으로 찾는 것이다.
2. limit와 비교하며 answer를 더한다.