강의

멘토링

커뮤니티

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

bonjour8084님의 프로필 이미지
bonjour8084

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

3. 부분집합 구하기(DFS)

부분집합구할때 아래와 같이 구해도 괜찮을까요

작성

·

364

·

수정됨

0

arr = []
def DFS(v):
    if v>3:
        return
    else:
        arr.append(v)
        DFS(v+1)
        print(arr)
        arr.remove(v)
        DFS(v+1)
DFS(1)
[1, 2, 3]
[1, 2]
[1, 3]
[1]
[2, 3]
[2]
[3]

 


 

위와같이 풀면 중위순회라고 봐야할지 궁금합니다

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

네. 괜찮습니다. 코드의 가독성을 위해서

arr = []
def DFS(v):
    if v>3:
        if len(arr) > 0:
            print(arr)
    else:
        arr.append(v)
        DFS(v+1)
        arr.remove(v)
        DFS(v+1)
DFS(1)

하면 어떻게 싶습니다.

노드를 출력한게 아니라서 중위순회라고 하기에는 좀 애매하네요.

 

bonjour8084님의 프로필 이미지
bonjour8084

작성한 질문수

질문하기