Search

기사단원의 무기

알고리즘
연습문제
플랫폼
프로그래머스
JCF
HashSet
상태
해결
생성 일시
2023/12/23 07:20
최종 편집 일시
2023/12/23 07:48

문제 설명

해결과정

Solution.java

import java.util.*; class Solution { public int solution(int number, int limit, int power) { // 철의 예상 무게 int answer = 1; // 기사의 번호 (1번 기사는 약수가 1개 attack은 1 무기의 무게도 1) int knight = 2; // 무기의 공격력 = 약수의 개수 int attack = 0; // 2번 부터 number의 기사까지 체크 while(knight <= number) { if(knight <= 3) { attack = 2; } else { attack = measure(knight); } // System.out.println(attack); attack = attack > limit ? power : attack; // System.out.println(knight + "기사의 공격력 " + attack + " "); // if(attack > limit) { // attack = power; // } answer += attack; knight++; } return answer; } public int measure(int knight) { Set<Integer> set = new HashSet<>(); // System.out.println(knight + "의 약수"); for(int i = 1; i < ((knight/2)+1); i++) { if(knight % i == 0) { set.add(i); set.add(knight/i); // System.out.println(i + " " + knight/i); } } // System.out.println(set.size() + "개"); return set.size(); } }
Java
복사