1
간단한 0-1 배낭 문제를 만들려고했지만 약간의 오류가 발생했습니다. 도움을 주시면 감사하겠습니다. 내 배낭 코드가 잘못된 결과를 제공합니까?
T = int(input().strip())
def knapsack(n,k,ar):
if n==0 or k==0:
return 0
elif ar[n-1]>k:
return knapsack(n-1,k,ar)
else:
return max(knapsack(n-1,k,ar),ar[n-1] + knapsack(n-1,k-ar[n-1],ar))
for t in range(T):
a = input().strip()
n,k = int(a[0]),int(a[2])
ar = [int(i) for i in input().strip().split(' ')]
print(knapsack(n,k,ar))
나는
2
3 12
1 6 9
5 9
3 4 4 4 8
이 다시 입력을 실행하고 내가 잘못 출력을 수신입니까? 어떤 오류도 찾을 수 없습니다. 미리 감사드립니다
출력
1
8