DFS 깊이 우선 탐색 알고리즘
·
알고리즘 공부/BFS & DFS
DFS 깊이 우선 탐색 알고리즘 특정한 경로로 탐색하다가 특정한 상황에서 최대한 깊숙이 들어가서 노드를 방문한 후, 다시 돌아가 다른 경로로 탐색하는 알고리즘 1) 탐색 시작 노드를DFS 깊이 우선 탐색 알고리즘 특정한 경로로 탐색하다가 특정한 상황에서 최대한 깊숙이 들어가서 노드를 방문한 후, 다시 돌아가 다른 경로로 탐색하는 알고리즘 1) 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다. 2) 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 "방문 처리"한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다. 3) 2) 번의 과정을 더이상 수행할 수 없을 때까지 반복한다." 여기서 "방문처리" 는 스택에 한 번 삽입되어 처리된 노드가 다시 삽입되..
탐색에 사용되는 자료구조 큐, 스택, 재귀함수
·
코딩/파이썬(python)
"탐색"이란 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룬다. "자료 구조" 데이터를 표현하고 관리하고 처리하기 위한 구조 그중 스택과 큐는 자료구조의 기초 개념으로 두 핵심적인 함수로 구성된다. 그중 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성한다. 1) 삽입(Push) : 데이터를 삽입한다. 2) 삭제(Pop) : 데이터를 삭제한다. 스택 선입후출 구조 또는 후입 선출 구조 스택은 박스 쌓기에 비유가 가능하다 1) 박스는 아래에서부터 위로 차곡차곡 쌓는다. 2) 아래에 있는 박스를 치우기 위해서는 위에 있는 박스를 먼저 내려야 한다. 이것이 스택의 구조이다. ex) stack = [] #삽..