
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를 더한다.

'자바스크립트' 카테고리의 다른 글
[JavaScript] 배열 slice()와 pop()의 시간복잡도 - 햄버거만들기(프로그래머스) (1) | 2023.10.31 |
---|---|
[JavaScript] 숫자 짝꿍 - (프로그래머스) (1) | 2023.10.31 |
[JavaScript] 아스키 코드 변환 - 둘만의 암호(프로그래머스) (0) | 2023.10.30 |
[JavaScript] sort함수 정리 (0) | 2023.10.26 |
[JavaScript] 3진법 뒤집기 - 내장함수/ 계산 (0) | 2023.10.26 |