PGS / 기사단원의 무기 / Python
Updated:
풀면서
✅ 매우 쉬운 문제다. 다만, 약수 개수를 구하는 함수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