본문 바로가기

카테고리 없음

프로그래머스_Level1_기사단원의 무기

약수 알고리즘 출처: [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에 추가해주면 끝이다.