무민은귀여워

깊이 우선 탐색, 너비 우선 탐색 구현 수도코드 본문

IT/알고리즘

깊이 우선 탐색, 너비 우선 탐색 구현 수도코드

moomini 2021. 5. 18. 00:06
반응형

깊이 우선 탐색

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
깊이 우선 탐색
*/
 
int dfs(int now)
{
    if (현재 상태 now가 끝나는 조건) return 현재 상태 now의 값;
 
    int ret = -1;
 
    for (int i = 0; i < 다음 상태 개수; i++)
    {
        int next = i번째 다음 상태;
        if (next가 조건을 만족하는 경우) ret = max(dfs(next), ret);
    }
 
    return ret;
}
cs

 

너비 우선 탐색

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*
너비 우선 탐색
*/
Queue<T> q = new Queue<T>();
q.Enqueue(초기상태);
while (q.Count != 0)
{
    T now = q.Dequeue();
    현재 상태를 처리합니다.
        for (int i = 0; i < 다음 상태 계수; i++)
        {
            T next = i번째 다음 상태;
            if (next를 방문했었는지 판정)
                q.Enqueue(next);
        }
}
cs

 

반응형
Comments