모든 경우의 수를 탐색하는 것으로, 트리를 검사하는데에는 깊이 우선 탐색(DFS)을 사용한다. 탐색을 하다가 해결 방법을 찾지 못하면 이전의 분기점으로 돌아간다. 보통 재귀를 통하여 해결한다.
private static void dfs(int now,boolean[] visited){
visited[now] = ture;
//결과 처리(출력 or 저장)
for(int i=0;i<N;i++){
if(!visited[i] && matrix[current][i]){
dfs(i,visited);
}
}
}