[프로그래머스] 약수 구하기 -Python

MinWoo Park·2021년 3월 24일
0

Algorithm

목록 보기
23/42
post-thumbnail

Algorithm Problem with Python — 23day


문제 설명 📖

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한사항

  • n은 0 이상 3000이하인 정수입니다.

입출력 예


문제 이해 🔑

주어진 인풋의 약수를 구하여 모두 더하는 문제입니다.


수도 코드 ✍️

제가 생각했던 수도 코드입니다.
1. 인풋 정수 n을 1부터 n까지 나머지 연산자를 활용하여 나누어 떨어지는 수를 구합니다.
2. 나누어 떨어진 수는 모두 더하여 리턴합니다.

문제 풀이 후 다른 풀이를 살펴보니 좀 더 파이썬다운 코드가 있었습니다.
그리고 나머지 연산자로 확인하는 범위를 절반으로 줄여 실행 속도를 높일 수 있었습니다.


코드 작성 ⌨️

  • 저의 코드입니다.
def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            answer += i
    return answer
  • 좀 더 파이썬답게 작성된 모범 코드
def solution(n):
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])

정리 😄

쉬운 알고리즘에서는 좀 더 파이썬 다운 코드를 짤 수 있도록 고민하는 시간을 가져야겠습니다.

profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글