[LeetCode] 0322. 코인체인지

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)
				
			
ko_KR한국어