[프로그래머스] 약수의 합 (파이썬)

철웅·2022년 10월 11일
0

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12928


💻 Code

def solution(n):
    return  sum([i for i  in range(1,n+1) if (n%i==0)])
  • 지난번에 풀었던 하샤드 수 문제 짬바로 리스트 컴프리헨션을 활용하였다.


📌 다른 사람의 풀이

def sumDivisor(num):
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
  • num / 2의 수들만 검사하고 num을 한번 더 더해줌 (속도 2배 향상)
  • 12의 경우 1 2 3 4 6 12 니까 반을 넘는 값은 자기 자신 말고는 필요가 없었다는거...

0개의 댓글