본문 바로가기

Algorithm/프로그래머스 연습 문제

프로그래머스 / 코딩 테스트 / 숫자의 표현

문제 설명

 

 

문제 해결

 

n은 이미 경우의 수에 포함되어 있으니 count를 1로 시작한다.

1부터 n까지 모든 경우의 수를 검사하지 않아도 된다.

n / 2까지만 검사해도 해당 문제를 풀 수 있다.

 

def solve(n):
    count = 1
    for i in range(1, (n//2 + 1)):
        end = i + 1
        while True:
            temp = sum([j for j in range(i, end)])
            if  temp== n:
                count +=1
                break
            elif temp > n:
                break
            end +=1
    return count


def solution(n):
    answer = solve(n)
    return answer