Algorithm Problem with Python — 23day
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한사항
입출력 예
주어진 인풋의 약수를 구하여 모두 더하는 문제입니다.
제가 생각했던 수도 코드입니다.
1. 인풋 정수 n을 1부터 n까지 나머지 연산자를 활용하여 나누어 떨어지는 수를 구합니다.
2. 나누어 떨어진 수는 모두 더하여 리턴합니다.
문제 풀이 후 다른 풀이를 살펴보니 좀 더 파이썬다운 코드가 있었습니다.
그리고 나머지 연산자로 확인하는 범위를 절반으로 줄여 실행 속도를 높일 수 있었습니다.
def solution(n):
answer = 0
for i in range(1, n+1):
if n % i == 0:
answer += i
return answer
def solution(n):
return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
쉬운 알고리즘에서는 좀 더 파이썬 다운 코드를 짤 수 있도록 고민하는 시간을 가져야겠습니다.