[알고리즘 / Java] 완전탐색(DFS, BFS)
·
알고리즘/개념
- DFS(깊이 우선 탐색, Depth-First Search) : 루트노드나 다른 임의노드에서 다음 분기로 넘어가긴 전에, 해당 분기를 모두 탐색하는 방법으로 탐색 후에는 다시 원점으로 돌아가 다른 분기를 탐색합니다. 자기 자신을 호출하는 순환 알고리즘의 형태입니다. -> 재귀나 스택을 이용 (컴퓨터 자체가 스택구조 이기때문에 재귀만으로 가능) 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 받드시 검사해야합니다. (만약 검사하지 않을 경우 무한루프의 위험이 있습니다.) ex) visited[index] = true; // 방문 미로탐색에서 해당 분기에서 갈 수 있을 때까지 계속 가다가 더이상 갈 수 없게되면 다시 가장 가까운 갈림길(새로운 분기)로 돌아와서 다른 방향으로 다시 탐색을 진행하는 방법..