728x90
반응형
브루트포스 알고리즘 & 백트래킹 문제이다. PyPy3로 제출해야 통과된다.
def dfs(depth, k):
if depth == k and sum(li) == S:
s.append(li)
return ;
for i in range(N):
if check[i]:
continue
li.append(nums[i])
check[i] = 1
dfs(depth+1, k)
li.pop()
for j in range(i+1, N):
check[j] = 0
N, S = map(int, input().split())
nums = list(map(int, input().split()))
li, s = [], []
for i in range(1, N+1):
check = [0]*N
dfs(0, i)
print(len(s))
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 15655번 N과 M (6)(python) (0) | 2021.03.24 |
---|---|
백준 알고리즘 10819번 차이를 최대로(python) (0) | 2021.03.23 |
백준 알고리즘 5636번 소수 부분 문자열(python) (0) | 2021.03.23 |
백준 알고리즘 19699번 소-난다!(python) (0) | 2021.03.23 |
백준 알고리즘 15965번 K번째 소수(python) (0) | 2021.03.23 |