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)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 15831 준표의 조약돌 (0) | 2021.08.23 |
---|---|
[백준][Python] 16926 배열돌리기 1 (0) | 2021.08.23 |
[백준][Python] 15565 귀여운 라이언 (0) | 2021.08.22 |
[백준][Python] 2204 도비의 난독증 테스트 (0) | 2021.08.22 |
[백준][Python] 13699 점화식 (0) | 2021.08.20 |