[백준] 9095번 (python 파이썬) 1,2,3 더하기
2021. 3. 26. 20:10ㆍ발돋움/알고리즘
728x90
반응형


import sys
def solve(sumn ,n):
if sumn > n: #더한 합이 n보다 크다면 오답
return 0
if sumn == n: #더한 합이 n과 같다면 정답이므로 방법1 추가
return 1
cnt = 0 #방법의 수를 리턴받아서 더하기때문에 초기화가 이뤄져도 괜찮다
for i in range(1, 4): #1, 2, 3만 이용하기
cnt += solve(sumn + i, n)
return cnt
t = int(sys.stdin.readline()) #테스트케이스 수
for _ in range(t):
print(solve(0, int(sys.stdin.readline())))
중복이 가능하기 때문에 따로 예외처리를 할 필요없이 재귀로 풀면 되는 문제이다.
1부터 중복이 가능하니까 재귀를 타고 더해서 정답이면 리턴으로 1을 돌려주고 만약 n보다 크다면 0을 리턴하여 모든 방법을 찾도록 하면된다.
728x90
반응형
'발돋움 > 알고리즘' 카테고리의 다른 글
| [백준] 15652번 (python 파이썬) N과 M(4) (0) | 2021.03.27 |
|---|---|
| [백준] 15649번 (python 파이썬) N과 M(1) (0) | 2021.03.27 |
| [백준] 6064번 (python 파이썬) 카잉달력 (0) | 2021.03.26 |
| [백준] 6588번 (python 파이썬) 골드바흐의 추측 (0) | 2021.03.26 |
| [백준] 1929번 (python 파이썬) 소수구하기 (0) | 2021.03.25 |