Medium data structure and algorithm practice puzzle.
Each spell has a mana cost and a damage, and each can be cast once. Return the most total damage you can deal with at most mana mana. This is the 0/1 knapsack, solved with dynamic programming. Keep best[m], the most damage for a budget of m. Add spells one at a time, and for each budget from the top down, either skip the spell or cast it and add its damage to best[m - cost]. Going top down is what stops one spell from being cast twice.
Solve it three ways: snap the jigsaw pieces together, fill in the blanks, or type it from scratch against the tests. This one is free.
Every line of the solution comes with a note explaining why it is there, and a step by step replay shows the code running. At level 3, where you type it yourself, you can ask for an AI mock interview on this problem that ends with a hiring manager's scorecard.
Then grow it into a real project with the Software Engineer button: this puzzle becomes the Entity Config Explorer, a pipeline you can run and download. See every Software Engineer project.
Browse all 576 puzzles