문제
접근
보통 원하는 수를 만들거나 초과하면 거기서 멈추지만, 이 문제의 경우 음수도 포함되어 있기때문에 끝까지 돌려봐야한다.
코드
- 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def func(idx, nowSum):
if n == idx:
if s == nowSum:
return 1
else:
return 0
return func(idx+1, nowSum) + func(idx+1,nowSum+arr[idx])
n, s = map(int, input().split())
arr = list(map(int, input().split()))
result = func(0,0)
if s == 0:
result-=1
print(result)