Løsningen er dynamisk programmering. Definer en vektor med P+1 elementer (der P er Julenissens penger). Hvert element er enten udefinert eller inneholder hvilke barn (blant de vi har sett på hittil) som har fått gave, og hvilken samlet glede dette har gitt. For hvert barn tar vi for oss alle prisene og lager en ny vektor med dobbelt så mange definerte elementer basert på om det aktuelle barnet har fått gave eller ikke. Om flere utvalg gir oss samme pris, beholder vi det beste.
Denne løsningen gir et program der kjøretiden er proporsjonal med n*P.