티스토리 뷰
Problem
You are given an integer array coins representing coins of different denominations and an integer amount representing a total amount of money.
Return the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, return -1.
You may assume that you have an infinite number of each kind of coin.
Example 1:
Input: coins = [1,2,5], amount = 11
Output: 3
Explanation: 11 = 5 + 5 + 1
Example 2:
Input: coins = [2], amount = 3
Output: -1
Example 3:
Input: coins = [1], amount = 0
Output: 0
Constraints:
- 1 <= coins.length <= 12
- 1 <= coins[i] <= 2^31 - 1
- 0 <= amount <= 10^4
Solution
서로 다른 액면가의 동전을 나타내는 정수 배열과 총 금액을 나타내는 정수가 주어집니다.
해당 금액을 구성하는 데 필요한 가장 적은 수의 동전을 반환하십시오. 동전의 조합으로 그 금액을 만들 수 없는 경우 -1을 반환합니다.
각 종류의 동전이 무한한 수라고 가정합니다.
package io.lcalmsky.leetcode.coin_change;
import java.util.Arrays;
public class Solution {
public int coinChange(int[] coins, int amount) {
if (amount == 0) {
return 0;
}
int[] dp = new int[amount + 1];
Arrays.fill(dp, amount + 1);
dp[0] = 0;
for (int coin : coins) {
for (int i = coin; i <= amount; i++) {
dp[i] = Math.min(dp[i - coin] + 1, dp[i]);
}
}
return dp[amount] <= amount ? dp[amount] : -1;
}
}
Test
package io.lcalmsky.leetcode.coin_change;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SolutionTest {
@Test
void testAll() {
assertAll(
() -> test(new int[]{1, 2, 5}, 11, 3),
() -> test(new int[]{2}, 3, -1),
() -> test(new int[]{1}, 0, 0)
);
}
private void test(int[] coins, int amount, int expected) {
Solution solution = new Solution();
int actual = solution.coinChange(coins, amount);
assertEquals(expected, actual);
}
}
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode] 334. Increasing Triplet Subsequence (0) | 2023.06.28 |
---|---|
[LeetCode] 328. Odd Even Linked List (0) | 2023.06.27 |
[LeetCode] 1027. Longest Arithmetic Subsequence (0) | 2023.06.23 |
188. Best Time to Buy and Sell Stock IV (1) | 2022.09.13 |
1996. The Number of Weak Characters in the Game (0) | 2022.09.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Spring Boot
- 함께 자라기 후기
- 헥사고날 아키텍처
- Spring Boot JPA
- Spring Data JPA
- 스프링 부트
- spring boot application
- Java
- leetcode
- intellij
- 스프링 부트 회원 가입
- JPA
- spring boot jwt
- Linux
- 스프링부트
- proto3
- gRPC
- 스프링 부트 애플리케이션
- 스프링 데이터 jpa
- spring boot app
- 클린 아키텍처
- 스프링 부트 튜토리얼
- Jackson
- Spring Boot Tutorial
- r
- 알고리즘
- @ManyToOne
- JSON
- QueryDSL
- 함께 자라기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함