문제요약
나의 코드 및 설명
- 이전까지 풀어본 백트래킹 문제와 크게 다르지 않다. 다만 주의할 점은, 수열의 합(s)이 0이 되는 경우의 수를 구할 때, 빈 리스트의 경우는 제외시켜주어야 한다. len(temp_list) != 0 으로 간단하게 제외시켜줄 수 있었다.
def dfs(count, start, temp_list):
global ans
if len(temp_list) != 0 and sum(temp_list) == s:
ans += 1
if count == n:
return
for i in range(start, n):
dfs(count+1, i+1, temp_list+[num_list[i]])
n, s = map(int,input().split())
num_list = list(map(int, input().split()))
ans = 0
dfs(0,0,[])
print(ans)
'Baekjoon > 백트래킹' 카테고리의 다른 글
[백준] 18429 근손실 (실버3) / 백트래킹 (0) | 2023.04.26 |
---|---|
[백준] 6603 로또 (실버2) / 백트래킹 (0) | 2023.04.23 |
🥇[백준] 1759 암호 만들기 (골드5) / 백트래킹 (0) | 2023.04.21 |
🥇[백준] 9663 N-Queen (골드4) / 백트래킹, 룩업테이블 (1) | 2023.04.16 |
[백준] 15664 N과 M (10) (실버2) / 백트래킹, 파이썬튜터 (0) | 2023.04.14 |