규도자 개발 블로그
[프로그래머스/Level1/파이썬3(python3)] 약수의 합 본문
[프로그래머스/Level1/파이썬3(python3)] 약수의 합
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한사항
- n은 0 이상 3000이하인 정수입니다.
입출력 예
n | return |
---|---|
12 | 28 |
5 | 6 |
입출력 예 설명
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
풀이
def solution(n):
return sum([x for x in range(1, n + 1) if n % x == 0])
설명
코드의 흐름은 다음과 같다. range(1, n + 1)
을 통해 n까지의 숫자를 배열로 반환받고 여기에서 (n % x == 0)
이라는 조건식을 이용해 약수를 판별한다. 해당 과정은 컴프리헨션으로 진행하였으므로 list형대로 반환되는데 정수로만 이뤄진 이터레이블한 자료형은 요소의 모든 합을 반환해주는 sum이라는 함수사용이 가능하다. 그렇게 모든 약수의 합이 더해진 값을 구할 수 있다.
'알고리즘 > 풀이' 카테고리의 다른 글
[프로그래머스/Level1/파이썬3(python3)] 자릿수 더하기 (0) | 2020.04.14 |
---|---|
[프로그래머스/Level1/파이썬3(python3)] 이상한 문자 만들기 (0) | 2020.04.13 |
[프로그래머스/Level1/파이썬3(python3)] 시저 암호 (0) | 2020.04.11 |
[프로그래머스/Level1/파이썬3(python3)] 문자열을 정수로 바꾸기 (0) | 2020.04.10 |
[프로그래머스/Level1/파이썬3(python3)] 소수 찾기 (0) | 2020.04.09 |
Comments