728x90
반응형

탐색 알고리즘 2

DFS( Depth-First Search) 깊이 우선 탐색

DFS는 깊이 우선 탐색으로 이름에서 알 수 있듯 깊이를 우선으로 탐색하는 알고리즘이다.쉽게 말해 가장 끝의 부분까지 탐색했다가 돌아오면서 나머지 경로도 마찬가지로 끝 부분까지 탐색하는 알고리즘이다. DFS는 가장 끝부분까지 깊게 들어가기 때문에 완전 탐색(모든 경로 확인)이후에 최단 거리를 알 수 있다. 또한 먼 경로부터 탐색하기에 적합하지 않다.때문에 최단거리를 찾아야하면 BFS를 이용하는 것이 좋다. https://jinho082008.tistory.com/55 BFS(Breadth-First-Search) 넓이 우선 탐색BFS는 넓이 우선 탐색으로 이름에서 알 수 있게 넓게 탐색하는 알고리즘이다.쉽게 말하면 가장 가까운 부분부터 탐색하며 점차 넓혀가는 알고리즘이다. BFS는 가장 가까운 부분부터 ..

BFS(Breadth-First-Search) 넓이 우선 탐색

BFS는 넓이 우선 탐색으로 이름에서 알 수 있게 넓게 탐색하는 알고리즘이다.쉽게 말하면 가장 가까운 부분부터 탐색하며 점차 넓혀가는 알고리즘이다. BFS는 가장 가까운 부분부터 탐색하기에 최단거리를 탐색할 때 유리하다.만약에 특정 맵에서 key를 찾아야할 때 BFS를 이용한다면 현재 위치에서 가장 가까운 부분부터 탐색하다 Key를 찾는 순간 탐색을 멈추면 이것이 최단거리이기 때문이다.해당 거리에서 Key를 찾는 최단거리가 몇인지 구한다면 BFS를 사용하면 쉽게 구할 수 있다. int BFS(pair pos, vector>& board){ int pathCount = 0; //현재 위치와 이동 횟수를 저장하는 큐 queue, int>> q; //상하좌우 탐색을 위한 방향 저장 p..

728x90
반응형