

import java.util.*;
class Solution {
public int solution(int[] coins, int amount) {
int [] dp = new int [amount+1];
int INF = Integer.MAX_VALUE-1;
Arrays.fill(dp, INF);
dp[0] = 0;
for (int i=0; i<dp.length; i++){
for (int coin : coins){
if(i>=coin){
dp[i] = Math.min(dp[i], dp[i-coin]+1);
}
}
}
return dp[amount]==INF ? -1 : dp[amount];
}
}