[Python] 순열, 재귀
1,2,3,4로 순열 만들기 def f(i,N): if i == N: print(p) else: for j in range(i,N): p[i],p[j] = p[j],p[i] f(i+1,N) p[i], p[j] = p[j], p[i] # 복구 N = 4 p = [x for x in range(1,N+1)] f(0,N)
2022. 3. 8.
[Python] 부분집합 - 순열2
1. 합이 10인 부분집합 구하기 ( 모든 경우 확인) def f(i,N,K): # i부분집합에 포함될지 결정할 원소의 인덱스, N 전체 원소개수, K 찾는 합 global cnt cnt += 1 if i == N : # 한개의 부분집합 완성 # print(bit, end=' ') sum = 0 for j in range(N): if bit[j]: sum += a[j] if sum == K: # 찾는 합이면 for j in range(N): if bit[j]: print(a[j], end=' ') print() else: bit[i] = 1 f(i+1,N,K) bit[i] = 0 f(i+1,N,K) return a = [1,2,3,4,5,6,7,8,9,10] N = len(a) bit = [0]*N cn..
2022. 3. 7.