슬기로운 코테 생활
[프로그래머스] 약수의 합
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