파이썬 알고리즘

    branch(자식) 만들기 by DFS

    branch(자식) 만들기 by DFS

    ▶ DFS(L) 안에 DFS(L+1)이 있는 경우 재귀함수를 만들 수 있다. ▶ 다만 for문 안에 DFS(L+1)이 있는 for문의 range(범위)만큼 자식이 생긴다. ▶ 그러나 다음과 같이 for문을 사용하지 않고, 연쇄적으로 고정된 자식수(ex-3자식)를 만들 수도 있다.

    5.동전 분배하기(DFS)

    동전 분배하기 N개의 동전을 A, B, C 세명에게 나누어 주려고 합니다. 세 명에게 동전을 적절히 나누어 주어, 세 명이 받은 각각의 총액을 계산해, 총액이 가장 큰 사람과 가장 작은 사람의 차가 최소가 되도록 해보세요. 단 세 사람의 총액은 서로 달라야 합니다. ▣ 입력설명 첫째 줄에는 동전의 개수 N(3

    4. 동전바뀌주기

    동전바뀌주기 명보네 동네 가게의 현금 출납기에는 k가지 동전이 각각n1, n2, ... , nk개 씩 들어있다. 가게 주인은 명보에게 T원의 지폐를 동전으로 바꿔 주려고한다. 이때, 동전 교환 방법은 여러 가지가 있을 수 있다.예를 들어, 10원 짜리, 5원 짜리, 1원 짜리 동전이 각각2개, 3개, 5개씩 있을 때, 20원 짜리 지폐를 다음과 같은4가지 방법으로 교환할 수 있다. 20 = 10×2 20 = 10×1+5×2 20 = 10×1+5×1+1×5 20 = 5×3+1×5 입력으로 지폐의 금액 T, 동전의 가지수 k, 각 동전 하나의금액 pi와 개수 ni가 주어질 때 (i=1,2,...,k) 지폐를 동전으로 교환하는 방법의 가지 수를 계산하는프로그램을 작성하시오. 방법의 수는 231 을 초과하지않는..

    3. 양팔저울(DFS)

    문제-생략 문제풀이 import sys sys.stdin=open("input.txt", "r") def DFS(L, sum): #L은 깊이 and G를 접근하는 인덱스 global res if L==n: if 0