반응형
문제 설명
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
(12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.)
제한 사항
n은 0 이상 3000이하인 정수입니다.
해결 방법
1. n의 절반에 해당되는 수 만큼 반복을 돌린다.
2. n과 나누어 떨어지는 수들을 합한다.
3. 마지막으로 n을 합한다.
(n의 절반을 나눠 반복하였으므로 약수 중에 하나인 n을 추가로 더해주어야 함)
def solution(n):
answer = sum([i for i in range(1, n // 2 + 1) if n % i == 0]) + n
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
수박수박수박수박수박수? (0) | 2022.01.29 |
---|---|
시저 암호 (0) | 2022.01.27 |
이상한 문자 만들기 (0) | 2022.01.25 |
선형배열 (0) | 2022.01.25 |
정렬(sort)과 탐색(search) (0) | 2022.01.25 |