슬기로운 연구생활

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

슬기로운 코테 생활

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

vhrehfdl 2020. 12. 10. 17:07

* 문제

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

 

* 문제 풀이 

- 첫째, 반복문을 사용해 몫을 구한다.

- 둘째, 조건문을 사용해 나눌 값이 몫보다 크면 break를 걸어 탈출한다.

- 셋째, 만약 n이 9인 경우에는 1,3,9이기 때문에 추가로 예외처리를 한다.

 

* 생각

- 예외처리하는 부분이 까다로운 것 빼고는 문제 없다.

- 꾸준히 하자.

 

* 코드 

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            temp_b = int(n / i)
            if i > temp_b:
                break
            elif i == temp_b:
                answer += i
            else:
                answer += i + temp_b
    return answer

 

Comments