인프런 커뮤니티 질문&답변

미니님의 프로필 이미지
미니

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3주차개념 #2. 완탐과 원복

완탐-원복 강의 질문

작성

·

63

·

수정됨

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

1.해당 강의 4:26초에서 1과 인접한 노드는 0과 2뿐이라고 말하셨는데 3도 인접한 노드 아닌가요??

  1. go함수내에 있는 go함수의 동작이 모두 끝난후 원복에 관한 코드를 보면 노드 2를 0상태, 즉 방문하지 않은 상태로 돌리고 v벡터에서 제거하는 동작까지는 이해를 했습니다. 하지만 그 이후에 3이 다시 들어가는 원리를 이해 못하겠습니다.


답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 미니님ㅎㅎ

1.해당 강의 4:26초에서 1과 인접한 노드는 0과 2뿐이라고 말하셨는데 3도 인접한 노드 아닌가요??

네 맞습니다. 다만, for문상 순차적으로 진행했을 때의 상태를 설명하고 있는 부분입니다.

  1. go함수내에 있는 go함수의 동작이 모두 끝난후 원복에 관한 코드를 보면 노드 2를 0상태, 즉 방문하지 않은 상태로 돌리고 v벡터에서 제거하는 동작까지는 이해를 했습니다. 하지만 그 이후에 3이 다시 들어가는 원리를 이해 못하겠습니다.

     

    >> {0, 1, 2} 에서 {0, 1, 3} 이렇게 되는게 이해가 안간다는 말씀이시죠?

이부분은

2를 push -> 2를 방문 -> 해당 함수가 끝남 -> 2를 pop(), 그다음 3을 방문 -> 3을 push -> 3을 방문 -> 해당 함수가 끝난다

고 보시면 됩니다.

		visited[there] = 1; 
		v.push_back(there); 
		go(there);  
		visited[there] = 0;
		v.pop_back();

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


미니님의 프로필 이미지
미니

작성한 질문수

질문하기