[프로그래머스] Lv.1 기사단원의 무기.java

hgghfgf·2023년 5월 19일
0

프로그래머스

목록 보기
76/227

기사단원의 무기.java

class Solution {
    public int solution(int number, int limit, int power) {
        int answer = 0;
        
        for(int i=1; i<=number; i++){
            //약수
            int count = 0;
            for(int j=1; j*j<=i; j++){
                if(j*j==i){
                    count++;
                }else if(i%j==0){
                    count += 2;
                }
            }
            
            //조건처리
            answer += count > limit? power:count;
        }
        
        return answer;
    }
}

answer 변수를 0으로 초기화합니다.

for 반복문을 사용하여 1부터 number까지의 각 기사의 번호에 대해 처리합니다.

내부에 또 다른 for 반복문을 사용하여 i의 약수 개수를 계산합니다. j는 1부터 시작하여 j * j <= i 조건을 만족하는 동안 반복합니다.

j * j == i이면 i의 약수가 제곱수이므로 count를 1 증가시킵니다.

i를 j로 나눈 나머지가 0이면 i의 약수이므로 count를 2 증가시킵니다.

약수 개수에 대한 처리가 끝나면, count 값이 limit보다 큰지 확인합니다.

count가 limit보다 크다면, power 값을 answer에 더합니다.

그렇지 않으면, count 값을 answer에 더합니다.

모든 기사의 번호에 대한 처리가 끝나면, 최종적으로 계산된 answer 값을 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글