Sortera input efter ökande joltage (OBS: enligt problembeskrivning ska 0
alltid läggas till, och även högsta_joltage + 3
). Sedan:
- Första adaptern (som alltid är 0) kan vi nå på 1 sätt.
antal_sätt_att_nå_adapter[första_adapter] = 1
. - För varje
denna_adapter
i tur och ordning (startandes med den adapter som har lägst joltage, dvs0
):- Gå igenom alla senare adapters (
senare_adapter
, som då har högre joltage då vi sorterat på joltage) så länge vi kan nå den från nuvarande (senare_adapter.joltage - denna_adapter.joltage <= 3
):- Öka på
antal_sätt_att_nå_adapter[senare_adapter] += antal_sätt_att_nå_adapter[denna_adapter]
.
- Öka på
- Gå igenom alla senare adapters (
- Svaret är
antal_sätt_att_nå_adapter[sista_adapter]
.