그래프 2

DFS와 BFS - 파이썬 구현

DFS, BFS에 대해 알아보자 얻어갈 지식 DFS, BFS DFS( Depth-First Search : 깊이 우선 탐색) 깊이 우선 탐색은 그래프에서 한 루트로 더 이상 내려갈 곳이 없을 때까지 검색한 뒤 옆으로 이동하여 다른 루트를 검색하는 방식이다. 보통 한없이 깊이 검색하는 것을 방지하기 위해 깊이 제한을 사용한다. 깊이 제한에 도달할 때까지 목표 노드가 발견되지 않으면 가장 최근 노드의 부모 노드로 되돌아와서, 이전과는 다른 노드를 선택한다. 여기서 부모 노드로 되돌아오는 과정을 백트리킹이라 한다. 장점 단지 현 경로상의 노드만을 기억하면 되므로 저장공간의 수요가 비교적 적다. 목표 노드가 깊은 단계에 있을 경우 해를 빨리 구할 수 있다. 단점 해가 없는 경로에 깊이 빠질 가능성이 있다. 따라..

그래프 ( Graph )

자료구조 중 그래프에 대해 알아보자 얻어갈 지식 그래프 그래프 그래프란 노드와 노드를 연결하는 간선으로 표현되는 자료 구조이다. 종류는 크게 3가지이다. 무방향 그래프( undirected graphs ) 방향 그래프( directed graphs ) 가중치 그래프( weighted graphs ) 무방향 그래프( Undirected graphs ) 두 노드 사이의 간선은 방향을 나타내지 않고 양쪽 모두를 오갈 수 있다. 양방향 그래프( Directed graphs ) 두 노드 사이의 간선이 방향을 갖는다. 가중치 그래프 ( Weighted graphs ) 연결마다 가중치를 갖는다. 가중치의 의미는 시간, 거리, 크기 등이 될 수 있다. 일상생활에서 가장 흔히 볼 수 있는 가중치 그래프는 아래와 같은 ..