몽셀통통의 블로그
visit 알고리즘 본문
일반적으로 탐색과 관련된 재귀적 함수를 짤 때,
visit 행렬을 만들어 이전에 방문한 기록이 있는지,
있으면 1, 없으면 0으로 두어서 중복 방문을 방지한다
코드 예시
int visit[MAX][MAX] = { 0 }; void recursive(int i, int j){ if (checkvisit[i][j]) return; visit[i][j] = 1; (네 방향으로 이동하는 코드) visit[i][j] = 0; } |
코드를 간단하게 작성해 보았다.
위와 같이 보통 visit 행렬을 사용하여 방문하였는지 확인하게 되는데
맨 처음 if 문을 통해서 해당 위치가 이전에 방문하였는지 체크하고
방문하지 않았다면 visit하고 마지막에 다시 0으로 수정해 주어야
완전 탐색이 가능하다
모든 코드의 마지막에 다시 0으로 초기화해주야 한다는 거 잊지말기!
'IT > 자료구조 && 알고리즘' 카테고리의 다른 글
비트마스트 알고리즘 개념 및 기본 (0) | 2018.05.30 |
---|---|
dfs를 사용해야 할때 tip (0) | 2018.02.17 |