min
프로그래머스 기사단원의 무기 자바스크립트 본문
<문제>
https://school.programmers.co.kr/learn/courses/30/lessons/136798
<나의 풀이>
//1~number까지의 반복문을 돌면서 다음 과정을 수행한다.
//각 단계마다 약수의 갯수를 구한다.
//약수의 갯수가 limit를 넘는지 아닌지를 확인한다.
//만약 약수의 갯수가 limit를 넘는다면 power를 answer에 더한다.
//만약 약수의 갯수가 limit를 넘지 않는다면 약수의 갯수를 answer에 더한다.
//answer를 리턴한다.
function 약수갯수함수(num) {
let result = 0
for(let i = 1; i*i <= num; i++) {
if(i * i == num) result++;
else if(num % i == 0) result += 2
}
return result;
}
function solution(number, limit, power) {
var answer = 0;
for(let i = 1; i <= number; i++) {
let len = 약수갯수함수(i)
if(len <= limit) answer += len
else answer += power
}
return answer;
}
<다른 사람의 풀이>
function solution(number, limit, power) {
var answer = 0;
for (let n = 1; n <= number; n++)
{
let count = 0;
for (let j = 1; j * j <= n; j++)
{
if (j * j == n) count++;
else if (n % j == 0) count += 2;
}
if (count > limit) count = power;
answer += count;
}
return answer;
}
<참고자료>
효율적인 약수 알고리즘
https://devmoony.tistory.com/169
'알고리즘' 카테고리의 다른 글
프로그래머스 카드뭉치 자바스크립트 (0) | 2023.08.20 |
---|---|
프로그래머스 비밀지도 자바스크립트 (0) | 2023.08.19 |
프로그래머스 명예의 전당 자바스크립트 (0) | 2023.08.17 |
프로그래머스 같은 숫자는 싫어 자바스크립트 (0) | 2023.08.16 |
프로그래머스 콜라 문제 자바스크립트 (0) | 2023.08.16 |