Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
정수 배열이 제공됩니다. 동전
다른 명칭과 정수의 동전을 나타내는 양
총 금액을 나타냅니다.
반품 해당 금액을 구성하는 데 필요한 최소 동전 수. 코인의 조합으로 해당 금액을 보충할 수 없는 경우 반환합니다. -1
.
당신은 각 종류의 동전이 무한히 많다고 가정할 수 있습니다.
예시 1:
입력: 동전 = [1,2,5], 금액 = 11 산출: 3 설명: 11 = 5 + 5 + 1
예 2:
입력: 동전 = [2], 금액 = 3 산출: -1
예시 3:
입력: 동전 = [1], 금액 = 0 산출: 0
제약:
1 <= 동전.길이 <= 12
1 <= 동전[i] <= 2 31 - 1
0 <= 금액 <= 10 4
파이썬
from functools import lru_cache from looking import List class 해결 방법: def coinChange(self, coin: List[int], amount: int) -> int: @lru_cache(None) def dfs(amount): if amount < 0: return -1 if amount == 0: 0을 반환 min_cost = float('inf') for coin in coin: res = dfs(amount - coin) if res != -1: min_cost = min(min_cost, res+1) return -1 if min_cost == float('inf') else min_cost return dfs(amount)