<링크>
https://school.programmers.co.kr/learn/courses/30/lessons/136798
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<문제 설명>
<문제 해석>
1. 기사에겐 번호(1~number)가 있고, 자신의 번호에 해당하는 약수개수의 공격력 무기
(ex 4번기사의 무기공격력은 (1,2,4) -> 3)
2. if(공격력 > 제한수치) 정해진 공격력을 구매
3. limit은 제한수치, power은 정해진 공격력
4. 필요한 철의 무게를 리턴해라. 공격력1당 철1kg / answer = 철 무게kg(총공격력)
<문제 풀이>
class Solution {
public int solution(int number, int limit, int power) {
// 기사에겐 번호가 있고, 자신의 번호에 해당하는 약수개수의 공격력 무기
// if(공격력 > 제한수치) 정해진 공격력을 구매
// limit은 제한수치, power은 정해진 공격력
int answer = 0; // 공격력1당 철1kg, answer = 철 무게kg(총공격력)
// 1. 약수 갯수 구하기
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;
}
// 2. count가 limit 넘을 시 power로 치환
if(count > limit) count = power;
// 3. 총합
answer += count;
}
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스, JAVA, Lv1, KAKAO] 실패율 (0) | 2023.12.01 |
---|---|
[프로그래머스, JAVA, Lv1] 덧칠하기 (1) | 2023.11.29 |
[프로그래머스, JAVA, Lv1] 소수 찾기 (1) | 2023.11.27 |
[프로그래머스, JAVA, Lv1] 소수만들기 (조합, 경우의 수, 소수) (1) | 2023.11.27 |
JAVA - Arrays.copyOfRange() / 프로그래머스 lv1 - K번째 수 (0) | 2023.11.10 |