컴퓨터공학/알고리즘

Algorithm. 백트래킹 - 동전 거스름돈

오도원공육사 2020. 5. 22. 11:17
반응형

1. 동전 거스름돈

  • 총금액 800, 동전 종류 : 10, 50, 100, 400, 500
  • 그리디 : 500, 100, 100, 100 -> 최적해가 아니다

소스코드

# coin[] : 동전의 금액을 젖아
# choice[] : 선택한 동전 집합
# best : 거스름돈에 대한 최소 동전 개수

def coinChange(choice, N, money):
    global best
    if best <= N:
    	return
    elif money == 0: # best > N
    	best = N
    else:
    	for i in range(len(coin):
            if money - coin[i] >= 0:
            	choice[N] = coin[i]
                coinChange(choice, N+1, money-coin[i])
반응형