1182. 부분수열의 합
- 내 풀이
- 0 이 여러개인 경우 같은 부분수열이 나올 수 있음
- 여러번 ans+1 하지 않도록 set에 담아 걸러내기
n, s = map(int, input().split())
nums = list(map(int, input().split()))
nums_set = ()
ans = 0
def comb(start, cnt, tmp):
global ans
if cnt >= 1:
if tmp in nums_set:
return
if sum(tmp) == s:
ans += 1
if cnt == n:
return
for i in range(start, n):
tmp.append(nums[i])
comb(i+1, cnt+1, tmp)
tmp.pop()
comb(0, 0, [])
print(ans)
'코딩테스트 > BOJ' 카테고리의 다른 글
| [백준][브루트포스][순열] 10819.차이를 최대로 (0) | 2024.10.01 |
|---|---|
| [백준][백트래킹] 16938.캠프 준비 (0) | 2024.10.01 |
| [백준][백트래킹] 2529. 부등호 (0) | 2024.10.01 |
| [백준][이분 탐색][매개변수 탐색] 2110.공유기 설치 (0) | 2024.09.09 |
| [백준][이분 탐색] 1654. 랜선 자르기 (0) | 2024.09.09 |