코딩테스트 | python/프로그래머스

[프로그래머스 | python] 숫자의 표현

iemxl 2024. 5. 28. 14:58

알고리즘 고득점 Kit > 연습문제 > 숫자의 현

 

 

숫자의 표현 Lv.2

Finn은 요즘 수학공부에 빠져 있습니다.
수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다.
예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.


1 + 2 + 3 + 4 + 5 = 15
4 + 5 + 6 = 15
7 + 8 = 15
15 = 15


자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.

 

 

 

첫 번째 풀이 :     100점

def solution(n):
    answer = 0
    cnt = 0
    lst = []
    for i in range(n//2+1):
        cnt+=i
        if cnt < n:
            lst.append(cnt)
        else:
            break
    #print(lst)
    for j in range(len(lst)):
        if ((n - lst[j]) % (j+1)) == 0:
            answer+=1
    return answer
  • dp로 풀었는데
  • n = n
  • 2n + 1
  • 3n + 3
  • ...
  • 의 방식을 식으로 풀었음