function coinChange(total, coins) {
	let flag = new Array(total + 1).fill(0);
  coins.sort((a, b) => a-b);

  coins.forEach(el => {
    flag[el]++;

    for(let i=el+1; i<flag.length; i++) {
      if(flag[i - el] > 0) flag[i] += flag[i - el];
    }
  });
  return flag[total];
}