faecher:informatik:oberstufe:java:aoc:aco2023:day23:start

Tag 23 - A Long Walk

Teil 1

Teil 1 ließ sich mit einem leicht modifizierten Dijkstra-Algorithmus lösen. Dazu habe ich die separate Klasse "Kreuzung" genutzt.

Lösungsvorschlag Klasse Kreuzung

Lösungsvorschlag Teil 1

Teil 2

Teil 2 ist ein NP-hartes Problem! Dijkstra genügt hier nicht mehr, da Zyklen im Graphen vorkommen können. Lösen lässt es sich u.a. mit einer Breitensuche. Speichere in einer Queue alle nächsten noch zu probierenden Pfade ab. Speichere pro Pfad (eigene Klasse) den bisherigen gelaufenen Weg, die Gesamtdistanz und den aktuellen Kreuzungsnamen.

Lösungsvorschlag Klasse Pfad

Lösungsvorschlag Teil 2

  • faecher/informatik/oberstufe/java/aoc/aco2023/day23/start.txt
  • Zuletzt geändert: 28.12.2023 12:42
  • von Marco Kuemmel