# 전역 변수 # 트리를 딕셔너리 형태로 표현 # Key: 노드 / Value : 하위 노드 list graph = { 1:[2,3,4], 2:[5], 3:[5], 4:[], 5:[6,7], 6:[], 7:[3] } DFS (깊이 우선 탐색, Depth First Search) 루트 노드(최상위)부터 리프 노드(최하위)까지 탐색한 후, 다시 올라와서 내려가는 방식 스택(Stack)을 활용할 수 있음 재귀(Recursion) 함수를 활용할 수 있음 # 재귀 함수 이용한 DFS # Input : 최상위 노드 값 def recursion_dfs(node, discovered=[]): discovered.append(node) # 탐색한 노드에 추가 for x in graph[node]: # 해당 노드 하위의 ..