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

Lee, Chankyu·2021년 9월 8일
0
post-thumbnail

약수의 합

문제 링크

나의 풀이

def solution(n):
    answer = 0
    for i in range (1, n+1):
        if n % i == 0:
            answer+=i
    return answer
  • i가 1부터 n까지의 범위를 갖는 반복문을 사용하여 n을 i로 나누었을때 나머지가 0인 값들을 더하여 변수 answer에 할당하는 간단한 풀이법이다.

다른 사람의 풀이

def sumDivisor(num):
    return num + sum([i for i in range(1, (num // 2) + 1) if num % i == 0])
  • 이전의 글들에서 항상 말해왔듯이 한줄의 코드로 작성하는 연습도 지속적으로 해야하며, 이 답안의 핵심은 반복문의 범위를 1부터 (num//2)+1 로 했다는 것이다. 이 문제를 풀이할때 이 생각을 하긴 하였으나 적용하진 않았다. 하지만 input값이 매우 커지면 성능면에서 이 소스코드 답안이 훨씬 효율적일 것으로 생각된다.
profile
Backend Developer - "Growth itself contains the germ of happiness"

0개의 댓글