[프로그래머스] 136798번 - 기사단원의 무기 [Java]

2026. 6. 2. 11:37·프로그래머스
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 


 

 

문제

 

 

제출한 코드

import java.util.Arrays;

class Solution {
    public int solution(int number, int limit, int power) {
        
        int[] counts = new int[number];
        
        for (int i = 1; i <= number; i++) {
            int count = countDivisor(i);
            
            if (count > limit) counts[i-1] = power;
            else counts[i-1] = count;
        }
        
        return Arrays.stream(counts).sum();
    }

    private int countDivisor(int num) {
        double sqrt = Math.sqrt(num);
        int count = 1;
        
        for (int i = 2; i <= sqrt; i++) {
            if (num % i == 0) count++;
        }
        
        return sqrt == Math.floor(sqrt) ? count * 2 - 1 : count * 2;
    }
}

 

 

풀이

약수의 개수를 구하는 알고리즘은 아래의 글에 간단히 적어두었다.

 

약수의 개수 알고리즘

public int countDivisor(int num) { double sqrt = Math.sqrt(num); int count = 1; for (int i = 2; i 1부터 n까지의 숫자를 i로 나누어 떨어지는 수를 count 에 더하면 시간 복잡도가 O(n)이 나오게 된다.하지만, 약수의 개수

sxxlx.tistory.com

 

배열에 약수의 개수를 넣어서 마지막에 합을 구하여 return 하도록 작성했다.

약수의 개수를 구했을 때, 만약 limit 보다 더 많으면, 지정된 power를 counts 배열에 넣도록 했다.

 

'프로그래머스' 카테고리의 다른 글

[프로그래머스] 133499번 - 옹알이 (2) [Java]  (0) 2026.06.05
[프로그래머스] 77484번 - 로또의 최고 순위와 최저 순위 [Java]  (0) 2026.06.04
[프로그래머스] 159994번 - 카드 뭉치 [Java]  (0) 2026.05.22
[프로그래머스] 12901번 - 2016년 [Java]  (0) 2026.05.21
[프로그래머스] 138477번 - 명예의 전당 (1) [Java]  (0) 2026.05.20
'프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 133499번 - 옹알이 (2) [Java]
  • [프로그래머스] 77484번 - 로또의 최고 순위와 최저 순위 [Java]
  • [프로그래머스] 159994번 - 카드 뭉치 [Java]
  • [프로그래머스] 12901번 - 2016년 [Java]
이서라다
이서라다
  • 이서라다
    개발일지
    이서라다
  • 전체
    오늘
    어제
    • 전체 보기 (79)
      • 내일배움캠프 (21)
        • TIL (21)
      • 프로그래머스 (23)
      • Algorithm (2)
      • BackEnd (0)
        • Spring (0)
      • Language (4)
        • JAVA (4)
      • Git (2)
      • 백준 - Java (25)
        • 입출력과 사칙연산 (6)
        • 반복문 (8)
        • 1차원 배열 (1)
        • 문자열 (7)
        • 2차원 배열 (1)
        • 조합론 (1)
        • 정렬 (1)
      • IDE (1)
        • IntelliJ (1)
      • 티스토리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    티스토리스킨
    jdk삭제
    til
    내일배움캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이서라다
[프로그래머스] 136798번 - 기사단원의 무기 [Java]
상단으로

티스토리툴바