-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
제가 직접 작성한 코드에서는 중복된 결과가 나오는데 해결방법을 모르겠습니다.
22.07.07 22:22 작성 조회수 200
0
강의코드와는 다르지만 저는 여기서 왜 중복결과가 나오는지 어떻게 중복을 줄여야할 지 모르겠습니다....
t = int(input()) k = int(input()) p = [] n = [] cnt = 0 tmp = [] for i in range(k): a,b = map(int,input().split()) p.append(a) n.append(b) def DFS(i,sum): global cnt global tmp if sum > t: return if i == k: if sum == t: cnt += 1 print(tmp) else: if n[i] > 0: n[i] -= 1 tmp.append(p[i]) DFS(i+1,sum+p[i]) DFS(i,sum+p[i]) n[i] += 1 tmp.pop() DFS(i+1,sum) DFS(0,0) print(cnt)
이렇게 실행하면
이렇게 나옵니다. 해결방법이 필요합니다..
답변을 작성해보세요.
0
답변 1