Menu
CoddyTech

Coin Change

서로 다른 동전 액면가 목록 coins와 목표 amount가 주어집니다. 각 동전 액면가는 원하는 만큼 사용할 수 있습니다. 액면가의 합이 정확히 amount가 되는 동전의 최소 개수를 반환하고, 동전을 어떻게 조합해도 목표 금액을 만들 수 없다면 -1을 반환합니다. 금액이 0이면 동전은 0개가 필요합니다.

함수

coinChange(coins: integer-array, amount: integer) → integer
coinsinteger-array
각 동전의 서로 다른 액면가는 각각 원하는 만큼 사용할 수 있습니다
amountinteger
정확한 지불 총액
반환값integer
필요한 동전의 최소 개수 또는 해당 금액을 만들 수 없으면 -1

제약 조건

  • 1 ≤ coins.length ≤ 12
  • 1 ≤ coins[i] ≤ 104
  • 0 ≤ amount ≤ 104
  • 모든 동전의 값은 서로 다릅니다.

예제

입력
coins = [2, 5, 10]amount = 27
출력
4
설명
10 + 10 + 5 + 2개의 동전으로 27을 만들 수 있습니다. 동전 3개로는 불가능합니다. 27은 홀수이므로 5짜리 동전이 정확히 하나 필요하고, 나머지 두 동전의 합은 최대 20으로 22에 미치지 못합니다.
challenge icon

후속 질문

가장 적은 동전 개수를 찾는 대신, amount를 만드는 서로 다른 동전 조합이 몇 가지인지 셀 수 있나요?

코드 초기화
def coinChange(coins, amount):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

coins = [2, 5, 10]
amount = 27

예상 출력

4