개발/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