기록

[Python / Level1] 약수의 합 본문

Algorithm/Programmers

[Python / Level1] 약수의 합

서기A 2022. 10. 12. 21:47

Question

https://school.programmers.co.kr/learn/courses/30/lessons/12928

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


Code

def solution(n):
    return sum(i for i in range(1, n + 1) if n % i == 0)

Idea

약수란 1부터 자기자신까지의 수 중 자기자신과 나누었을 때 나머지가 0이 되는 수를 의미한다.

일반적으로 for문은 0부터 시작해 사용하지만, 자연수를 0 으로 나누는 것은 코드 상에서 에러를 발생시킨다.

때문에 for문을 1부터 시작해, 자기자신을 포함시키기 위해 n + 1까지 반복시키는 것이 하나의 포인트였다.

또한 파이썬 특유의 for문을 한 줄로 줄여서 사용하는 기법을 연습해볼 수 있었다.