약수 알고리즘 출처: [Java] 약수 구하기 알고리즘 — woodadada 개발 블로그 (tistory.com)
풀이:
class Solution {
public int solution(int number, int limit, int power) {
int answer = 0;
int plus=power;
for(int j=1; j<=number; j++){
int count=0;
int sqrt = (int) Math.sqrt(j);
for(int i = 1; i <= sqrt; i++){
if(j % i == 0){
count++;
if(j / i != i){
count++;
}
}
}
if(count>limit){
answer+=power;
}
else{
answer+=count;
}
}
return answer;
}
}
약수 알고리즘을 써야된다는건 문제를 보자마자 느낄 수 있었지만 막상 함수형태로 사용가능한게 없어서 약수 알고리즘을 찾아서 사용했다.
약수 알고리즘을 사용한다면 굉장히 간단한 문제이다.
limit의 값을 만약 약수의 개수가 넘어간다면 power값을 그렇지 않다면 그냥 count값을 answer에 추가해주면 끝이다.