coding test - python/Programmers

Programmers / 약수의 합 / Python

sillon 2022. 3. 29. 19:21
728x90
반응형

 

*문제 출처는 프로그래머스에 있습니다.

문제 제목: 약수의 합

문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12928


나의 풀이

def solution(n):
    s = []
    
    for i in range(1,n+1):
        if n % i == 0:
            s.append(i)
    return sum(s)

 

모범답안

def sumDivisor(num):
    # num / 2 의 수들만 검사하면 성능 약 2배 향상잼
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

※ 알아야 할 것

- num / 2의 수만 검사한다니... 그러고보니 맞는 말이다. 반을 넘어간 값은 검사하지 않아도 된다.

 

728x90
반응형