[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의 길이에 따라 다를 것 같다 라는 소심한 결론
Author And Source
이 문제에 관하여([PG] 약수의 합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kinnyeri/Programmers-약수의-합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)