DFS는 재귀함수를 이용하므로 런타임에러가 날 확률 있음.
이때는 재귀함수 사용가능깊이를 늘려주거나, BFS 이용하기.
# 방문 리스트
visited = [False]*(N+1)
# 인접 리스트 생성
# N : 총 노드 개수 / s,e : 노드1, 노드2
A = [[] for _ in range(N+1)]
for_in range(N):
s,e= map(int,input().split())
A[s].append(e)
A[e].append(s)
# 인접 리스트 정렬
for i in range(N+1):
A[i].sort()
def DFS(v):
# 탐색 순서대로 출력
print(v, end=' ')
# 방문 리스트 체크
visited[v] = True
# 이미 방문한 노드 제외한 인접 노드 함수에 넣기
for i in A[v]:
if not visited[i]:
DFS(i)
#start : 시작 노드
DFS(start)
또는 DFS 깊이 제한 에러 발생하므로
깊이 제한 늘리기 (파이썬 기본 깊이제한은 1000)
import sys
sys.setrecursionlimit(5000)