to vet these guesses i turned to a computer algorithm and what 's called dynamic programming , which solves massive problems by breaking the puzzle down into component pieces and linking the solutions together .