[JAVA 문제 풀이] 278. 기사단원의 무기

프로그래머스 (136798)
Stupefyee's avatar
May 26, 2025
[JAVA 문제 풀이] 278. 기사단원의 무기
notion image
 

내가 작성한 코드

class Solution { public int solution(int number, int limit, int power) { int answer = 0; for (int i = 1; i <= number; i++) { int count = 0; int sqrt = (int) Math.sqrt(i); // 약수의 개수를 구하는 방법 >> 제곱근 이하의 수로 나누어 약수 찾기기 for (int j = 1; j <= sqrt; j++) { if (i % j == 0) { count += 2; // j와 i/j 두 개의 약수 if (j * j == i) count--; // 제곱수일 때 중복 제거 } } if (count > limit) { count = power; } answer += count; } return answer; } }
 

다른 사람의 코드

class Solution { public int solution(int number, int limit, int power) { int[] count = new int[number + 1]; // 각 숫자의 약수 갯수 구하기 for (int i = 1; i <= number; i++) { for (int j = 1; j <= number / i; j++) { count[i * j]++; } } int answer = 0; for (int i = 1; i <= number; i++) { if (count[i] > limit) { answer += power; } else { answer += count[i]; } } return answer; } }
 
Share article

stupefyee