몽셀통통의 블로그
dfs를 사용해야 할때 tip 본문
여러 알고리즘 문제에서 완전 탐색으로 걸러지지 않을 것 같은 느낌의 문제가 종종 등장한다.
이러한 대부분의 경우는 dfs를 사용하여야 하는데 이 알고리즘을 사용해 보지 않는 사람들은
이해하기 어려울 수 있다.
이 알고리즘도 마찬가지로 재귀함수를 토대로 만들어 진다.
int visit[MAX] = { 0 }; int n;
void function(int i, int j){ if ( n==d ) return; for(int h=0 ; h<n ; h++){ if(!visit[i]){ visit[h] = 1; function( //특정 조건); visit[h] = 0; } } } |
요정도만 해주어도 dfs를 통해 모든 경우의 수를 탐색 할 수 있다.
- 왜 완탐색으로는 해결되지 않는 문제가 위 방법으로는 잘 해결될까? 탐색 방법 자체는
비슷한 것 같은데... 좀더 고민해 봐야겠다.
- (3/18) 이 방법을 쓰면 시간초과뜨는 경우가 잦다... 전수조사를 하기 때문인 것같은데
더 최적화 할 방법은 없을까
'IT > 자료구조 && 알고리즘' 카테고리의 다른 글
비트마스트 알고리즘 개념 및 기본 (0) | 2018.05.30 |
---|---|
visit 알고리즘 (0) | 2018.01.31 |