728x90
> 완전탐색 - 백트랙킹, 상태트리와 CUT EDGE / DFS 기초
📖 문제 : 부분집합 구하기(DFS)
자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램을 작성하세요.
입력설명
첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.
출력설명
첫 번째 줄부터 각 줄에 하나씩 부분집합을 아래와 출력예제와 같은 순서로 출력한다. 단 공집합은 출력하지 않습니다.
입력예제 1
3
출력예제 1
1 2 3
1 2
1 3
1
2 3
2
3
import sys
def DFS(v):
if v == n+1:
for i in range(1,n+1):
if ch[i]==1:
print(i, end=' ')
print()
else:
ch[v] = 1
DFS(v+1)
ch[v] = 0
DFS(v+1)
n = int(input())
ch = [0]*(n+1)
DFS(1)
⭐️ Point ! ⭐️
- 아래의 그림 + 코드 이해하기 !
출처
- 인프런 : 파이썬 알고리즘 문제 풀이
728x90
'Algorithm (Python, Java, SQL) > Inflearn Study' 카테고리의 다른 글
[Python Algorithm] 완전탐색(DFS) - 바둑이 승차 (1) | 2023.03.31 |
---|---|
[Python Algorithm] 완전탐색(DFS) - 합이 같은 부분집합(DFS : 아마존 인터뷰) (1) | 2023.03.29 |
[Python Algorithm] 완전탐색(DFS) - 이진트리 순회 (1) | 2023.03.29 |
[Python Algorithm] 완전탐색 - 재귀함수를 이용한 이진수 출력 (1) | 2023.03.29 |
[Python Algorithm] 자료구조(힙) - 최대힙 (1) | 2023.03.28 |