기사단원의 무기

개굴이·2023년 9월 8일
1

코딩테스트

목록 보기
10/58
post-thumbnail

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

기사단원의 수를 나타내는 정수 number와 이웃나라와 협약으로 정해진 공격력의 제한수치를 나타내는 정수 limit와 제한수치를 초과한 기사가 사용할 무기의 공격력을 나타내는 정수 power가 주어졌을 때, 무기점의 주인이 무기를 모두 만들기 위해 필요한 철의 무게를 return 하는 solution 함수를 완성하시오.

제한사항

  • 1 ≤ number ≤ 100,000
  • 2 ≤ limit ≤ 100
  • 1 ≤ power ≤ limit

입출력 예

numberlimitpowerresult
53210
103221

Solution.java

class Solution {
    public int solution(int number, int limit, int power) {
        int result = 0;//number 기사들 총합
        int soldier;
        
        for(int i = 1; i <= number; i++) {
            //약수 개수 구하기
            soldier = count(i);
            //limit 넘는지 확인
            if(soldier > limit)
                result += power;
            else
                result += soldier;
        }
        return result;
    }
    public int count(int num) {
        int cnt = 0;
        for(int i = 1; i <= Math.sqrt(num); i++) {
            if(i * i == num)
                cnt++;
            else if(num % i == 0)
                cnt += 2;
        }
        return cnt;
    }
}

1개의 댓글

comment-user-thumbnail
2023년 9월 15일

잘 보고 갑니다..👍👍

답글 달기