[Java] 깊이우선탐색 (DFS) 미로찾기 스택구현
·
Java/코딩테스트 연습 & 실습
깊이우선탐색(DFS) 최대한 깊이 내려간 후 더이상 깊이 갈 곳이 없을 경우 옆으로 이동한다. 미로찾기의 경우 최대한 한방향으로 쭉 직진한다. 더 이상 길이 없으면 스택을 pop하며 길을 찾아간다. 모든 노드를 방문하고자 할 경우 주로 사용하며 검색 속도는 너비우선탐색(BFS)보다 느리다. 따라서 최단 경로를 찾고 싶다면 BFS를 사용해야 한다. 1. map : 갈 수 있는 길은 0, 갈 수 없는 길은 1이다. 2. push한 길도 벽으로 변경하여 여러번 push할 수 없도록 한다. (방문 처리) 3. class Index : Stack에 담을 객체 ( x와 y의 좌표를 가지고 있다.) 4. 현재 인덱스를 저장하고 있는 Index 클래스를 매개변수로 받아 findWay() 메서드에서 상하좌우를 탐색하고 ..