[백준 1182][파이썬 1182] 부분수열의 합
풀이
파이썬의 이터레이터 라이브러리를 불러와 각 부분 수열 의 조합들을 부르트 포스 방식으로 구현합니다. 이때 조합들의 sum 값 이 지정한 수와 같을 경우에는 카운트를 1 증가 시킵니다.
코드
# 1182 부분수열의 합
from itertools import *
n,s = map(int,input().split())
_arr = list(map(int,input().split()))
_stack = []
cnt = 0
for i in range(1,len(_arr)+1):
# 1. 조합들을 만든다 중복 x
k = list((combinations(_arr, i)))
# 2. 만든조합에서 sum 이 0 이 되는 값을 찾으면 카운트 +1
for i in k:
if sum(i) == s:
cnt += 1
# _stack.append(k)
# print(_stack)
print(cnt)
댓글남기기