[프로그래머스] - 약수의 합

SeomIII·2021년 7월 7일
0

programmers_LEVEL1

목록 보기
9/34
post-thumbnail

문제 설명

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한 사항
n은 0 이상 3000이하인 정수입니다.

문제 풀기

생각과정
1. for 문 돌리면서 약수 찾아서 더해줘야겠네

문제 풀이

def solution(n):
    answer = 0
    
    for i in range(1,n+1):
        if n%i==0:
            answer+=i
    return answer

다른 사람 풀이

1)

def sumDivisor(num):

    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
    
// 이건 수학적인 고민이 없으면 풀지 못할 듯,,

2)

def sumDivisor(num):
    return sum([i for i in range(1,num+1) if num%i==0])

개선점

  • sum 함수를 쓰면 더 간결해지겠다. 저번에 sum 함수를 쓰자고 다짐했는데😂
profile
FE Programmer

0개의 댓글