[알고리즘/Java/Kotlin]BFS vs DFS
·
개발/알고리즘
BFS와 DFS는 그래프 탐색 알고리즘 중 대표적인 두 가지 방법입니다. 프로그래머스 문제를 풀다보면 해답으로 꼭 있는 것이 BFS 혹은 DFS입니다. 그런 문제를 풀 때마다 나에게 익숙한 DFS를 사용하여풀었는데, 정확한 개념 정리가 필요할 것 같아 정리해보았습니다. * 아래 코드 설명 - Node는 그래프의 노드를 나타내는 클래스 - 각 노드는 그래프 상에서 연결된 다른 노드들의 리스트를 가지고 있음 - start는 탐색을 시작할 노드를 나타내는 변수 - visited는 이미 방문한 노드들의 집합을 나타내는 변수 BFS (너비 우선 탐색) BFS(너비 우선 탐색)는 시작 정점으로부터 가까운 정점을 먼저 탐색하는 방법입니다. 즉, 현재 정점에서 인접한 정점을 큐에 추가하고, 큐에서 하나씩 뽑아 탐색을 ..