Updated:

PGS / 기사단원의 무기

풀면서

✅ 매우 쉬운 문제다. 다만, 약수 개수를 구하는 함수divisor에서 시간 단축을 해야 한다.
초반에는 아래의 코드로 약수 개수를 구했는데 시간 초과가 났다.

def divisor(n):
    cnt = 0
    for i in range(1, n+1):
        if n % i == 0:
            cnt += 1
    return cnt


code ⌨️

def divisor(n):
    cnt = 0
    for i in range(1, int(n**(1/2))+1):
        if n % i == 0:
            cnt += 1
            if i*i != n:
                cnt += 1
    return cnt

def solution(number, limit, power):
    answer = 0
    number_ = []
    
    for n in range(number):
        temp = divisor(n+1)
        
        if temp > limit:
            answer += power
        else:
            answer += temp
    
    return answer


Leave a comment