Potato

 

  • 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

+ Recent posts