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
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 문자열 다루기 기본 / Python (0) | 2022.03.29 |
---|---|
Programmers / 서울에서 김서방 찾기 / Python (0) | 2022.03.29 |
Programmers / 자릿수 더하기 / Python (0) | 2022.03.29 |
Programmers / 짝수와 홀수 / Python (0) | 2022.03.29 |
Programmers / 두 개 뽑아서 더하기 / Python (0) | 2022.03.29 |