728x90
1. [1,2,3]의 부분집합 구하기
def f(i,N): # i부분집합에 포함될지 결정할 원소의 인덱스, N 전체 원소개수
if i == N : # 한개의 부분집합 완성
print(bit, end=' ')
for j in range(N):
if bit[j]:
sum += a[j]
print(a[j],end=' ')
print()
else:
bit[i] = 1
f(i+1,N)
bit[i] = 0
f(i+1,N)
return
a = [1,2,3]
bit = [0,0,0]
f(0,3)
2. 부분집합 합 구하기(sum추가)
def f(i,N): # i부분집합에 포함될지 결정할 원소의 인덱스, N 전체 원소개수
if i == N : # 한개의 부분집합 완성
print(bit, end=' ')
sum = 0
for j in range(N):
if bit[j]:
sum += a[j]
print(a[j],end=' ')
print('sum = ',sum)
else:
bit[i] = 1
f(i+1,N)
bit[i] = 0
f(i+1,N)
return
a = [1,2,3]
bit = [0,0,0]
f(0,3)
728x90
반응형
'TIL - 프로그래밍 > 개념, 설정' 카테고리의 다른 글
[Python] 순열, 재귀 (0) | 2022.03.08 |
---|---|
[Python] 부분집합 - 순열2 (0) | 2022.03.07 |
[Python] 퀵 정렬 (0) | 2022.03.01 |
[Python] 백트래킹 (Backtracking) 기법 (0) | 2022.02.28 |
[Python] 깊이 우선 탐색(DFS : Depth First Search) (0) | 2022.02.26 |
댓글