알고리즘/이것저것
[프로그래머스] 약수의 합 - 파이썬(python)
아뵹젼
2022. 9. 3. 11:38
나의 풀이
def solution(n):
answer = 0
for i in range(1,n+1) :
if n%i == 0 :
answer += i
return answer
1부터 n까지 돌면서, n 을 해당 숫자로 나누었을 때 나머지가 0 이라면 약수에 해당
다른 풀이
def sumDivisor(num):
return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
num / 2까지만 검사하여 성능을 2배로 올렸다.
그도 그럴 것이 num 이 100라고 생각해보자. 50 보다 큰 숫자는 100의 약수가 될 수 없으므로, 검사할 필요가 없다..!
조금 더 생각하는 능력을 키우자!!