practivceAlgorithm/백준

[백준][Python] 16432 떡장수와 호랑이 : 백트래킹 설계.

findTheValue 2021. 8. 22. 18:13

checking을 어떻게 할것이냐? 그날 이떡을 먹었었다. 에 대한 체킹. 먹었었다면 굳이 다시 먹을 필요 없다.

 

import sys
input = sys.stdin.readline

def DFS(cnt,dduks,yesterday):
    global answer
    if cnt == N:
        for d in dduks:
            print(d)
        exit()
    for dduk in days[cnt]:
        if dduk != yesterday and not ate[cnt][dduk-1]:
            ate[cnt][dduk-1] = True
            DFS(cnt+1, dduks + [dduk],dduk)

N = int(input())
days = []
answer = []
for _ in range(N):
    m,*dduk = map(int, input().split())
    days.append(dduk)
ate = {i:[False for _ in range(10)] for i in range(N+1)}
DFS(0,[],0)
print(-1)