-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
WordSearch
20.11.13 03:34 작성 조회수 114
1
안녕하세요. BFS/DFS 강의를 보면서 궁금한점이 있어서 질문남깁니다!
wordSearch 맨 마지막 부분에,
visited[x][y] = false 로, 원상복귀 시킨다고 하셨는데
이 부분은 어차피 다시 갈 곳이 아닌데 굳이 있어야 하는 코드인가요??
없어도 정상적으로 답이 출력되어서 제가 잘못이해하고있는건지 궁금합니다 ㅜㅜ
답변을 작성해보세요.
0
푸샵맨 코딩스터디
지식공유자2020.11.16
안녕하세요.
답변이 늦어서 죄송합니다.
앞부분에서 visited[x][y]=true; 넣고 다시 파고들면서 true를 넣고 있습니다.
dfs는 파고들면서 true를 넣다가 , 왔던길을 다시 돌아갈이 생기죠
true로 넣었는데 다시 원복을 하고 싶은거죠, 그 경우 때문에 false로 원복을 시키는겁니다.
헷갈리시면 아래 로그를 찍어서 보세요. visited에 해당하는 부분을 추적해 보세요.
이문제 상당히 중요한 문제입니다.
이거 이해하시면 상당히 좋은 결과를 맺으실겁니다.
github에 ㅇ주석으로 업데이트 해놨습니다.
1주일 넘더라도 꼭 이해하세요
private void print(boolean[][] visited) {
if(visited==null|| visited.length==0)return;
int m=visited.length,n=visited[0].length;
for(int i=0; i<m; i++) {
for(int j=0; j<n; j++) {
System.out.print(visited[i][j]+"\t");
}
System.out.println();
}
}
답변 1