public void IterativeOptimizedCoinChangeV3Test()
        {
            //Arrange
            var coins  = new[] { 1, 5, 10, 21, 25 };
            var target = 63;

            var expected = 3;
            var coinUsed = new Dictionary <int, int>();

            //Act
            var result = MySolution.CoinChangeV3(target, coins, out coinUsed);

            //Console.WriteLine("Change to give back : " + target);
            //Console.WriteLine("Number of coins used : " + result);
            //Console.WriteLine("Coins used : ");
            //PrintUsedCoins(coinUsed, target);
            //Console.ReadKey();

            //Assert
            Assert.AreEqual(result, expected, "Result differs from what is expected.");
        }