Skip to content

Instantly share code, notes, and snippets.

@fornwall
Last active December 10, 2020 15:12
Show Gist options
  • Save fornwall/5f7db9eb34cd31e9f7d95384aafa19e7 to your computer and use it in GitHub Desktop.
Save fornwall/5f7db9eb34cd31e9f7d95384aafa19e7 to your computer and use it in GitHub Desktop.
Spoiler

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, dvs 0):
    • 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].
  • Svaret är antal_sätt_att_nå_adapter[sista_adapter].
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment