인프런 커뮤니티 질문&답변
합이 같은 부분집합 질문입니다.
작성
·
158
0
안녕하세요.
항상 답변해주셔서 감사합니다.
이번엔 합이 같은 부분집합 문제 질문입니다.
테스트5개 중 4번이 틀렸다고 나오는데요,
코드가 어디서 이상이 있는지 잘 모르겠습니다.
import sys
from collections import deque
import heapq as hq
#sys.stdin= open("input.txt","r")
def DFS(v):
if v>=7:
if sum(llist)==sum(rlist):
print("YES")
return
else:
llist.append(alist[v-1])
DFS(v+1)
rlist.append(alist[v-1])
DFS(v+1)
if __name__ == '__main__':
answer = "NO"
llist = []
rlist = []
n = int(input())
alist = list(map(int, input().split()))
#print(alist)
DFS(1)
v가 7 이상인경우 테스트 확인을 진행했습니다.
만약 Yes가 안나올 경우 NO로 고정시켰습니다.
문제점발견해주시면 감사합니다.
답변 1
0
김태원
지식공유자
안녕하세요^^
위 코드를
3
1 2 5
입력을 가지고 집합이 완성됬을 때 아래 코드처럼 출력해보니
import sys
from collections import deque
import heapq as hq
sys.stdin= open("input.txt","r")
def DFS(v):
if v>3:
for x in llist:
print(x, end=' ')
print()
for y in rlist:
print(y, end=' ')
print()
if sum(llist)==sum(rlist):
print("YES")
return
else:
llist.append(alist[v-1])
DFS(v+1)
rlist.append(alist[v-1])
DFS(v+1)
if __name__ == '__main__':
answer = "NO"
llist = []
rlist = []
n = int(input())
alist = list(map(int, input().split()))
#print(alist)
DFS(1)
llist와 rlist 리스트에 원소를 넣었다 뺏다 해야 하는데 계속 누적되고 있습니다.





