문제
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
제한사항
입출력 예
풀이
문제는 단순히 연속된 수를 이중 for문으로 돌면서 더했을 때 n값이 되면 count하면 된다.
def solution(n):
answer = 0
for i in range(1, n+1):
sum = 0
for j in range(i, n+1):
sum += j
if sum == n:
answer +=1
continue
return answer
처음 위에와 같이 풀었을 때 효율성 테스트에서 시간초과가 무지막지하게 나왔다.....
원인을 찾아보니 n값을 초과했을 때는 for문을 중단시켜주고 쓸데없는 계산을 하지 않게 해야하는데 불필요한 작업을 하고 있던 것이다. 따라서 추가한 코드는.. 사진 아래에 첨부.
def solution(n):
answer = 0
for i in range(1, n+1):
sum = 0
for j in range(i, n+1):
sum += j
if sum == n:
answer +=1
continue
elif sum > n :
break
return answer