[PG] 약수의 합

프로그래머스 약수의 합

Mine

def solution(n):
      answer = 0
      for i in range(1,int(n**0.5)+1):
          if n%i==0 :
              if i==int(n/i) : answer+=i
              else: answer+=(i+int(n/i))
      return answer

다른 사람 풀이를 보았는데

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

num/2로 하셨는데 sqrt(num)은 안되나? 라는 물음을 가지고 댓글을 읽는데
의문을 해결해주셨다.
그러고 내 코드의 효율이 의심스럽군 이라는 생각을 하게 되었다.
막 나쁘다!! 라는 말은 아니지만, 그래도 염두해두어야지

input의 길이에 따라 다를 것 같다 라는 소심한 결론

좋은 웹페이지 즐겨찾기