inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

DFS (깊이 우선 탐색)

순회 순서 질문

394

Byul Kim

작성한 질문수 1

0

선배님 DFS 순회 순서에 대해 질문이있어서 글 남깁니다.

void DFS(int now)
{
    //전위
    cout << now << endl;
    visited[here] = true;

    for(int next = now ; next < length ; ++next)
    {
        if(visited[next])
            continue;
    }

    //후위
    cout << now << endl;
}

질문 1. 주석에 써넣은대로 전위 후위 순회가 맞나요?

질문 2. 그래프에는 중위 순회가 존재하지 않는건가요?

질문 3. visited[here]의 위치는 항상 포문 위쪽에 고정되어야 하는건가요? 후위순회라면 방문 기록도 밑에 있어야할 것 같은데 포문 아래쪽에 작성하게 되면 동작이 원하는대로 되지 않아서요.. 이해를 잘못한건지ㅠㅠ 궁금합니다

C#

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

질문에 답변 드리겠습니다.

질문 1에 대한 답변입니다. 주석에 써넣은 대로 전위 후위 순회가 맞습니다. 해당 코드에서는 노드를 방문한 후 자식 노드를 탐색하기 전에 전위 순회를 하고, 모든 자식 노드를 탐색한 뒤 해당 노드를 다시 출력하는 후위 순회를 하고 있습니다.

질문 2에 대한 답변입니다. 그래프에서는 일반적으로 중위 순회를 사용하지 않습니다. 중위 순회는 주로 이진 트리에서 사용되는 방법이므로 그래프에서는 잘 쓰이지 않습니다. 중위 순회는 좌우 순서를 중요시하기 때문에 그래프의 환경에 적합하지 않을 수 있습니다.

질문 3에 대한 답변입니다. visited[here]의 위치는 항상 포문 위에 고정되어야 하는 것은 아닙니다. 후위 순회라면 방문 기록도 포문 아래에 작성해도 되는데, 포문 위에 작성했을 때 동작이 원하는 대로 되지 않는다는 말씀이시죠? 이 부분은 코드의 구현 방식에 따라 달라질 수 있습니다. 일반적으로는 전위 순회에서 방문 기록은 포문 위에 작성하고, 후위 순회에서는 포문 아래에 작성하는 것이 일반적입니다. 그렇지만 구체적인 구현 방식이나 사용되는 변수에 따라 방문 기록의 위치를 조정해야 할 수도 있습니다. 코드의 동작 방식을 다시 확인해보시고, 원하는 결과가 나오지 않을 때는 코드를 재검토해보시기를 권장드립니다.

더 궁금한 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!

게임개발에서 주로 어느부분에 알고리즘들이 쓰이는지 궁금합니다

0

180

2

글꼴 바꿔도 자간이 좁아 찌그러져보이시는 분들

0

89

1

NullReferenceException 예외) 같은 실수하시는분 계실까봐 남겨요

0

68

1

parent를 Pos타입으로 만든 이유

0

74

1

콘솔창에 격자가 안나옴 미로 생성 X

0

137

1

격자 생성 안됨 무한루프

0

114

1

BFS 질문

0

144

2

격자 무한 출력

0

169

2

A* 의 PriorityQueue 관련 질문입니다

0

157

2

vscode에서 원그리기

0

184

1

환결설정 강의 원 그리기

0

123

1

15-17분

0

88

1

3:16초에 근데 이렇게 해가지고 부분에 "{}"를 만들어서 자식 node들을 생성하던데 왜 중괄호로 감싸게 만드는 건가요?

0

142

2

동적 배열 관련 질문입니다!

0

209

1

Big-o 표기법에서 시간 복잡도

0

167

1

7:40에서 언급하신 색상이 날아가는 문제 이해를 못하겠습니다

0

153

1

트리구현연습 강의 질문있어요

0

143

1

창은 뜨는데 맵이 나타나지 않아요.

0

177

1

Ctrl F5 하면 나오는 창은 어디서 설정할까요??

0

273

1

void CalcPathFromParent(Pos[,] parent)에 대해서

0

203

2

NullReferenceException예외가 발생했을때 어떻게 해야하나요?

0

230

1

[해결] 환경설정 강의에서 원이 이상하게 그려지는 문제

3

317

2

오른손 법칙에서 플레이어 점이 안 움직입니다

0

246

2

맵 만들기 오류

0

180

1