[Python][프로그래머스][Level2] 숫자의 표현

[Python][프로그래머스][Level2] 숫자의 표현

코드

def solution(n):
    cnt=[]
    i=1
    while sum(cnt)<n:
        cnt.append(i)
        i+=1
    
    N=cnt[-1]
    answer=1
    for i in range(N,n):
        cnt=0
        cp=i
        while cnt<n:
            cnt+=cp
            cp-=1
        if cnt==n:
            answer+=1
            
    return answer

완전 탐색이지만 좀 고려해줄 부분이 있다.

내가 푼 방식은 숫자 N부터 1씩 줄여가면서 n보다 크거나 같을 때까지 더해준다.

하지만 이것을 N=1부터 하면 시간초과가 난다.

따라서 가장 작은 N은 1 부터 1씩 증가해가며 더 해줬을때, 마지막 값이다.

따라서 N 값을 미리 정해주고 N 부터 n까지 구해준다.

Discussion and feedback