-
[프로그래머스 Python] 약수의 합Algorithm/1일 1코테 2020. 9. 23. 11:35반응형
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
내 답
def solution(n): answer = 0 for i in range(1,n+1): if n%i == 0: answer += i return answer
알고리즘
1. n을 i(1부터 n까지)로 나누어서 나머지가 0인수는(=약수) answer에 더 한다
2. 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로 범위지정(모든 약수는 반만 계산하면 되기 때문에)
list comprehension에 대한 공부가 필요할 것 같다.
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[프로그래머스 Python] 자릿수 더하기 (0) 2020.09.23 [프로그래머스 Python] 이상한 문자 만들기 (0) 2020.09.23 [프로그래머스 Python] 수박수박수박수박수박수? (0) 2020.09.22 [프로그래머스 Python] 서울에서 김서방 찾기 (0) 2020.09.22 [프로그래머스 Python] 문자열 내 마음대로 정렬하기 (0) 2020.09.22