문제

풀이
import itertools
import sys
n, s = map(int, sys.stdin.readline().split())
nlist = list(map(int, sys.stdin.readline().split()))
count = 0
for k in range(1, n+1):
clist = list(itertools.combinations(nlist, k))
for i in range(len(clist)):
sum = 0
for j in range(len(clist[i])):
sum += clist[i][j]
if sum == s:
count += 1
print(count)
재귀 사용 풀이
import sys
N, S = map(int, sys.stdin.readline().strip().split())
A = list(map(int,sys.stdin.readline().strip().split()))
cnt = 0
def make_subsequence(now, Idx):
global S, cnt
n = len(A)
if Idx == n:
if sum(now)==S and now:
cnt +=1
return
now.append(A[Idx])
make_subsequence(now,Idx+1)
now.pop()
make_subsequence(now,Idx+1)
make_subsequence(list(), 0)
print(cnt)