Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
1 + 2 + 3 + 4 + 5 = 15
4 + 5 + 6 = 15
7 + 8 = 15
15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
def solution(n):
answer = 0
index = 1
while n > 0: # n이 0보다 크거나 같을 때까지 반복
if n % index == 0: # n이 index로 나누어지면
answer += 1 # 표현 방법 수 카운트 증가
n -= index # index만큼 n 감소
index += 1 # index 증가
return answer
효율성을 높이는 풀이법을 찾는 것이 중요한 문제
15 % 1 == 0
-> 15 = 15
(15 - 1) % 2 == 0
-> 7 + 8 = 15
(15 - 1 - 2) % 3 == 0
-> 4 + 5 + 6 = 15
(15 - 1 - 2 - 3) % 4 != 0
(15 - 1 - 2 - 3 - 4) % 5 == 0
-> 1 + 2 + 3 + 4 + 5 = 15