개발/algorithm

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

zzi_on2 2022. 4. 8. 17:29

문제 링크

풀이 

- 완전 탐색으로 풀이

1부터 n까지의 숫자를 시작 숫자로 두고  s에 합 구하기 

i부터 연속된 숫자들을 더했을 때 s가 나오면 answer + 1

i부터 연속된 숫자들을 더했을 때 s보다 커지면 만들 수 없는 것이므로 break 

 

이 때 자기 자신은 항상 가능하므로 answer = 1 로 두고 반복문 실행 

def solution(n):
    answer = 1
    
    for i in range(1,n+1):
        # 연속된 숫자들의 합 저장할 변수 s 
        s = i 
        # i부터 연속된 숫자들의 합 구하기 
        for j in range(i+1, n+1):
        	# n이 가능하면 answer + 1 
            if s == n :
                answer += 1 
            s += j 
            # n보다 커지면 만들 수 없다는 뜻 
            if s > n :
                break 
            
    return answer