특정 합이 ''인 부분집합을 모두 구해야 할 때 목록을 순회하여 목록의 모든 조합을 구하고 합과 일치하면 콘솔에 출력하는 메소드가 정의됩니다.피>
예
아래는 동일한 데모입니다.
from itertools import combinations def sub_set_sum(size, my_array, sub_set_sum): for i in range(size+1): for my_sub_set in combinations(my_array, i): if sum(my_sub_set) == sub_set_sum: print(list(my_sub_set)) my_size = 6 my_list = [21, 32, 56, 78, 45, 99, 0] print("The list is :") print(my_list) subset_sum = 53 print("The result is :") sub_set_sum(my_size, my_list, subset_sum)
출력
The list is : [21, 32, 56, 78, 45, 99, 0] The result is : [21, 32] [21, 32, 0]
설명
-
필요한 패키지를 환경으로 가져옵니다.
-
목록의 크기를 매개변수로 받는 'sub_set_sum'이라는 메서드가 정의되어 있습니다.
-
목록을 반복하고 '조합' 방법을 사용하여 모든 조합을 가져옵니다.
-
합계가 특정 값과 같으면 목록으로 변환하여 콘솔에 표시합니다.
-
메소드 외부에 크기가 정의됩니다.
-
목록이 정의되고 콘솔에 표시됩니다.
-
하위 집합 값이 정의됩니다.
-
메소드는 필수 매개변수를 전달하여 호출됩니다.
-
출력은 콘솔에 표시됩니다.