min
프로그래머스 기사단원의 무기 자바스크립트 본문
<문제>
https://school.programmers.co.kr/learn/courses/30/lessons/136798
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<나의 풀이>
//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
[Java] 약수의 개수 구하는 최적의 방법(알고리즘)
Java - 약수의 개수 구하기 (최적의 방법) 최근에 코딩테스트 문제를 풀다가 약수의 개수 관련해서 로직을 작성한 기억이 많다. 그러다 기본적인 방법 외에 조금 더 효율적으로 약수의 개수를 구
devmoony.tistory.com
'알고리즘' 카테고리의 다른 글
프로그래머스 카드뭉치 자바스크립트 (0) | 2023.08.20 |
---|---|
프로그래머스 비밀지도 자바스크립트 (0) | 2023.08.19 |
프로그래머스 명예의 전당 자바스크립트 (0) | 2023.08.17 |
프로그래머스 같은 숫자는 싫어 자바스크립트 (0) | 2023.08.16 |
프로그래머스 콜라 문제 자바스크립트 (0) | 2023.08.16 |