Part6.3_완전탐색_깊이,넓이 우선탐색활용_양팔저울(DFS)

Eugenius1st·2022년 2월 2일
0

Python_algorithm

목록 보기
47/83

아니 진짜 모르겠다...

나는 능지가... 휴.......
1~13g 까지 잴 수 있는 경우..

선생님 코드

import sys
sys.stdin = open("input.txt", "rt")

def DFS(L,sum):
    global res
    if L==n:
        if 0<sum<=s:
            res.add(sum)
    
    else:#여기서 세 갈래로 뻗어야 한다.
        DFS(L+1, sum+G[L])#G의 왼쪽에 추를 더하는 것
        DFS(L+1, sum-G[L])#추를 오른 쪽에 넣은 상황    
        DFS(L+1, sum) #아무 것도 더하지 않은 상황

if __name__ == "__main__":
    n = int(input())
    G=list(map(int,input().split()))
    s=sum(G)
    res=set()#중복 제외하는 set자료구조
    DFS(0,0)
    print(s-len(res))
profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글