반응형
이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/136798
문제 내용은 지적 재산 보호 차원에서 가져오지 않고 풀이만 공유드리도록 하겠습니다.
풀이
제 풀이가 무조건적으로 맞는 것도 최적의 답변도 아니지만, 이런 풀이도 있다는 차원에서 작성해 보며, 좀 더 나은 방법이 있다면 이야기해 주셔도 도움 될 것 같습니다.
class Solution {
public int solution(int number, int limit, int power) {
int answer = 0;
// Step. 기사단원의 수 만큼 약수 개수 / 철의 무개 계산
for(int knight = 1; knight <= number; knight++){
// Step. 기사단원이 구매하려는 무기 공격력 계산 (약수 개수)
// 약수 개수 알고리즘 적용
int attack = 0;
for(int i = 1; i * i <= knight; i++){
if(i * i == knight) attack += 1;
else if(knight % i == 0) attack += 2;
}
// System.out.print(", " + attack);
// Step. 구매하려는 무기 공격력이 공격력 제한 수치(limit)보다 큰 경우 사용할 무기(power)로 대체
if(attack > limit) attack = power;
// System.out.print("=> " + attack);
// Step. 철의 중량 합산 (무기 공격력 * 1kg)
answer += attack;
// System.out.print("= " + answer);
}
return answer;
}
}
반응형
'개발 창고 > Algorithm' 카테고리의 다른 글
[프로그래머스] 푸드 파이트 대회 - JAVA (37) | 2024.03.02 |
---|---|
[프로그래머스] 과일 장수 - JAVA (41) | 2024.03.01 |
[프로그래머스] 명예의 전당 (1) - JAVA (56) | 2024.02.28 |
[프로그래머스] 문자열 나누기 - JAVA (74) | 2024.02.26 |
[프로그래머스] 가장 가까운 같은 글자 - Java (66) | 2024.02.24 |