몽셀통통의 블로그

visit 알고리즘 본문

IT/자료구조 && 알고리즘

visit 알고리즘

몽통이 2018. 1. 31. 02:01



일반적으로 탐색과 관련된 재귀적 함수를 짤 때,

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