프로그래머스(Python) 풀이/Level.1

프로그래머스(Python) Level.1 약수의 합 풀이

개발윗미 2022. 2. 24. 16:23

Python으로 구현한 12928번 약수의 합 문제 풀이입니다.

 

https://programmers.co.kr/learn/courses/30/lessons/12928

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr


def solution(n):
    data = []
    for i in range(n//2, 0, -1) :
        if n % i == 0 :
            data.append(i)
    data.append(n)
    
    result = sum(data)
    return result

 

1. 반복문을 통해 n의 절반부터 0까지 하나씩 값을 감소시키면서 확인한다.

 

2. n을 현재 확인하고 있는 값으로 나눈 나머지 값이 0이라면 n의 약수이므로, data리스트에 추가한다.

 

3. 전달받은 n의 값 또한 약수에 해당되므로 data리스트에 추가한다.

 

4. 최종적으로 data리스트에 존재하는 요소들의 합을 도출하여 반환한다.