coinChange = (coins, amount, coin = 0) => {
    const isBaseCase1 = amount === 0;
    if (isBaseCase1) return 0;

    const isBaseCase2 = !((coin < coins.length) && (0 < amount));
    if (isBaseCase2) return -1;

    return dfs(coins, amount, coin);/* Time O(S^N) | Space O(N) */
}
Brute Force - DFS
Time O(S^N) | Space O(N)
https://leetcode.com/problems/coin-change/
@param {number[]} coins
@param {number} amount
@return {number}