최대 1 분 소요

문제 링크

내 풀이

def getMyDivisor(n):

    divisorsList = []

    for i in range(1, int(n**(1/2)) + 1):
        if (n % i == 0):
            divisorsList.append(i) 
            if ( (i**2) != n) : 
                divisorsList.append(n // i)

    divisorsList.sort()
    
    return len(divisorsList)

def solution(number, limit, power):
    iron = []
    for num in range(1,number+1):
        yak_num = getMyDivisor(num)
        if yak_num > limit:
            iron.append(power)
        else:
            iron.append(yak_num)
    return sum(iron)

배울 점

  • 약수 시간복잡도 효율적으로 구하는 방법

댓글남기기