inflearn logo
강의

Course

Instructor

Introduction to Python Algorithm Problem Solving (Coding Test Preparation)

3. Finding subsets (DFS)

DFS 순서 질문드립니다.

120

ziyoon12067873

6 asked

0

1 2 3

1 2 가 출력된 이후 1 3이 선택되는 이유가 이해가 안되어 질문드립니다. ㅠㅠ 1 2 출력 이후 else: 구문의 어느 단계로 가는 건가요..? 그리고 그때 v 값은 얼마인지도 잘 모르겠습니다.

python 코딩-테스트

Answer 2

0

ziyoon12067873

영상 5분부터 다시 보는데, 1 2 3 , 1 2, 이후에 D(3)이 끝났다는게 잘 이해가 안됩니다..D(3)이 끝났다고 D(2) 로 이어지는 개념이 이해가 안되는데..어떻게 하면 이해가될까요 ㅜㅜ 스택 구조 생각을 해도 D(3)->D(2)라는게 도무지 이해가 안됩니다..

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

DFS의 동작 방식은 처음에는 다소 이해하기 어려울 수 있습니다. 기본적으로 이 코드는 부분집합을 생성할 때 모든 가능한 경우를 탐색하는 방식으로 동작합니다. 즉, 각 원소를 포함시키는 경우와 포함시키지 않는 경우를 번갈아 가며 탐색하는 구조입니다.

질문에 주어진 코드에서는 else 구문에서 DFS(v+1) 함수를 호출하여 두 가지 경우를 모두 확인하는데요, 쉽게 설명하면 다음과 같습니다:
1. 현재 원소를 포함한 경우(ch[v]=1), 다음 단계로 넘어가 선택을 계속합니다.
2. 현재 원소를 포함하지 않은 경우(ch[v]=0), 다시 다음 단계로 넘어가 선택을 계속합니다.

1 2가 출력된 이후에는 1 2에서의 선택을 되돌아가 다시 1 3이 탐색되는데, 이는 DFS(v+1)로 인해 예전 상태로 돌아가면서 새로운 경로를 탐색하게 되어서입니다. 각 재귀 호출은 서로 독립된 호출 스택을 가지며, 그로 인해 이전 상태로 돌아가 다른 선택을 할 수 있게 됩니다.

유사한 질문과 답변이 있는 URL을 제공해 드립니다:
- DFS 부분집합 구하기
- 이 질문에서도 부분집합 생성 과정에서의 이해가 어려운 부분을 설명하고 있습니다.

제가 제시한 링크가 이해에 도움을 줄 수 있길 바랍니다. 물론, 강의 영상도 반복해서 보시면 점차 익숙해지실 것입니다. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

0

76

2

스택에서 ')'을 만나는 경우

0

77

3

문제가 어디있나요?

0

63

2

변수 or 함수명

0

60

1

침몰하는 타이타닉 문제 질문입니다

0

53

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

108

1

아나그램 비교 코드

0

115

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

159

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

162

2

동적계획법은 사용하는 문제

0

124

2

제 코드 좀 봐주세요

0

147

1

예외가 존재할 가능성?

0

96

1

3번이 안풀립니다

0

92

0

5번 틀림

0

112

0

오류원인?

0

97

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

65

1

코딩테스트

0

88

1

left, right를 사용한 풀이법에 대한 질문입니다

0

88

1

섹션 9 Dynamic Programming (동적 계획법) 최대부분증가수열

0

113

2