faecher:informatik:oberstufe:java:aoc:aoc2024:day01:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:aoc:aoc2024:day01:start [01.12.2024 09:44] Marco Kuemmelfaecher:informatik:oberstufe:java:aoc:aoc2024:day01:start [04.01.2025 14:35] (aktuell) – [Teil 1] Marco Kuemmel
Zeile 10: Zeile 10:
   * ''ArrayList<Integer> varName = new ArrayList();'' Eine ArrayList eignet sich am besten, um eine **variable** Anzahl von Elementen zu speichern. Dies trifft generell immer auf **alle** AoC-Aufgaben zu (Arrays werden eher selten benötigt). Denke daran, dass du dazu auch ganz oben ''import java.util.ArrayList;'' aufrufen musst.   * ''ArrayList<Integer> varName = new ArrayList();'' Eine ArrayList eignet sich am besten, um eine **variable** Anzahl von Elementen zu speichern. Dies trifft generell immer auf **alle** AoC-Aufgaben zu (Arrays werden eher selten benötigt). Denke daran, dass du dazu auch ganz oben ''import java.util.ArrayList;'' aufrufen musst.
   * Mit folgender //for-each// Schleife kannst du am einfachsten über jede Zeile der Eingabedatei iterieren: ''for (String line: inputLines) {...}''   * Mit folgender //for-each// Schleife kannst du am einfachsten über jede Zeile der Eingabedatei iterieren: ''for (String line: inputLines) {...}''
-  * Mit ''line.split("...")'' bekommst du ein Array von Strings zurückgeliefert, dass den ursprünglichen String ''line'' an denjenigen Stellen aufgeteilt hat, die im Anführungszeichen stehen. Das String-Element, an dem geteilt wird, verschwindet dabei! Nutze das, um jede Zeile in die linke und rechte Zahl zu splitten. An was für einem String-Element musst du die Trennung durchführen?+  * Mit ''line.split("...")'' bekommst du ein Array von Strings zurückgeliefert, das den ursprünglichen String ''line'' an denjenigen Stellen aufgeteilt hat, die im Anführungszeichen stehen. Das String-Element, an dem geteilt wird, verschwindet dabei! Nutze das, um jede Zeile in die linke und rechte Zahl zu splitten. An was für einem String-Element musst du die Trennung durchführen?
   * Mit ''Integer.parseInt(...)'' kannst du einen String in einen Integer umwandeln. Damit kannst du pro Schleifendurchlauf folgenden Code verwenden, um an die **linke** Zahl zu gelangen: ''Integer.parseInt(line.split("...")[0])'' (für die rechte Zahl musst du nur eine Kleinigkeit ändern).   * Mit ''Integer.parseInt(...)'' kannst du einen String in einen Integer umwandeln. Damit kannst du pro Schleifendurchlauf folgenden Code verwenden, um an die **linke** Zahl zu gelangen: ''Integer.parseInt(line.split("...")[0])'' (für die rechte Zahl musst du nur eine Kleinigkeit ändern).
   * Mit ''liste.add(...)'' kannst du ein Element zu einer ArrayList namens ''liste'' hinzufügen.   * Mit ''liste.add(...)'' kannst du ein Element zu einer ArrayList namens ''liste'' hinzufügen.
Zeile 18: Zeile 18:
 ++++ Vorgehensweise | ++++ Vorgehensweise |
   * Initialisiere zwei ArrayLists für Integerzahlen - je eine für die linken und eine für die rechten Zahlen.   * Initialisiere zwei ArrayLists für Integerzahlen - je eine für die linken und eine für die rechten Zahlen.
-  * Iteriere über jede Schleife und füge dabei die linke und rechte Zahl in die jeweile ArrayList hinzu.+  * Iteriere über jede Zeile und füge dabei die linke und rechte Zahl in die jeweile ArrayList hinzu.
   * Sortiere beide Arrays.   * Sortiere beide Arrays.
-  * Merke dir nun die akkumulierenden Differenzen (beginnend mit 0).+  * Merke dir nun die akkumulierenden ("aufaddierenden"Differenzen (beginnend mit 0).
   * Iteriere über jedes Listenelement: Addiere zur Lösung (den Differenzen) den **Betrag** (''Math.abs(...)'') der Differenz der linken und der rechten Zahl.   * Iteriere über jedes Listenelement: Addiere zur Lösung (den Differenzen) den **Betrag** (''Math.abs(...)'') der Differenz der linken und der rechten Zahl.
   * Nach dem Schleifendurchlauf kannst du die Differenzen ausgeben/zurückgeben.   * Nach dem Schleifendurchlauf kannst du die Differenzen ausgeben/zurückgeben.
  • faecher/informatik/oberstufe/java/aoc/aoc2024/day01/start.1733046241.txt.gz
  • Zuletzt geändert: 01.12.2024 09:44
  • von Marco Kuemmel