- dfs를 이용한 중복순열로 해결하였다.
TC = int(input())
for tc in range(1,TC+1):
N = int(input())
cnt = 0
def dfs(level):
global cnt
if level > N: # level의 값이 목표값을 넘어가면 리턴
return
if level == N: # 목표값이 되었을 때, cnt + 1
cnt += 1
return
for i in range(1,4): # 1~3 까지의 수의 중복순열 구하기
dfs(level+i)
dfs(0)
print(cnt)
'Python > 백준' 카테고리의 다른 글
[백준/Python] 10773. 제로 (0) | 2022.10.28 |
---|---|
[백준/Python] 10828. 스택 (0) | 2022.10.25 |
[백준/Python] 15649. N과 M (1) | 2022.10.23 |
[백준/Python] 2468. 안전 영역 (0) | 2022.10.19 |
[백준/Python] 7562. 나이트의 이동 (0) | 2022.10.18 |