The Knapsack Problem is a combinatorial optimization problem. With the "fantasy sports/fantasy basketball"
variation of the knapsack problem, my objective is to optimize the players selected with the ultimate goal being
to score the maximum number of fantasy points.

Playing fantasy sports "quantitatively" has two components. The first to build the statistical models
to project how many fantasy points a player will produce. For this exercise, the player projections will come from the
Basketball Monster site.

The second is determining which players to choose from the given projections. This is where the knapsack problem
comes into play. Players are selected based on their projected point production versus their cost.

Think of an algorithm as a recipe. Like a recipe, you have ingredients (constraints) and you have instructions prepare and combine the ingredients.

- A knapsack has a maximum capicity/weight it will hold.
- It must be filled with X amount of widgets.
- A widget has two values (its weight and benefit).
- The goal is to place as many widgets in the knapsack as possible without exceeding capacity while obtaining the maximum benefit.