-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
섹션 6) 부분집합 구하기
22.09.22 20:23 작성 조회수 124
0
안녕하세요, 강사님. 강의 잘 듣고 있습니다!
def DFS(v)의 else문에서 이해가 가지 않는 부분이 있어 질문 드립니다.
import sys
sys.stdin=open("input.txt", "r")
def DFS(v):
if v==n+1: #종료지점에 도달하면 출력! e.g. D(4)
for i in range(1, n+1):
if ch[i]==1:
print(i, end='')
print() #line by line으로 출력
else: #원소를 포함하냐 안 하냐(o,x)
ch[v]=1 #o
DFS(v+1)
ch[v]=0 #x
DFS(v+1)
if __name__=="__main__":
n=int(input())
ch=[0]*(n+1) #상태트리에서 원소를 포함하냐 안 하냐를 체크하는 변수
DFS(1)
1, 2, 3
1, 2
까지 출력이 되는 것은 이해했습니다.
1, 2 까지 출력이 완료되고 나면 else문의 마지막 DFS(v+1)까지 다 돌아간 것인데 어떻게 back할 수 있는 건지 궁금합니다.
답변을 작성해보세요.
0
김태원
지식공유자2022.09.23
안녕하세요^^
영상의 4분 50초부터 6분까지를 자세히 보세요. 그게 이해가 안가시면 앞 영상인 이진트리순회 영상을 다시 한 번 보시면 좋을 것 같습니다.
답변 1