Day 1: Historian Hysteria
Der Tag 1 ist tatsächlich eine sehr leichte Aufgabe und damit ein perfekter Einstieg für jede/-n in den diesjährigen AoC! Lies dir zunächst die offizielle Aufgabenbeschreibung durch: 2024 - Day 1
Teil 1
Tipps zur Vorgehensweise folgen weiter unten - hier sind zunächst nur wichtige Java-Methoden aufgelistet. Dieser Tag ist so leicht, dass du das auch hinbekommen kannst, ohne viele Tipps zu lesen!
Wichtige Java-Methoden:
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 obenimport 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
line.split("…")
bekommst du ein Array von Strings zurückgeliefert, dass den ursprünglichen Stringline
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
liste.add(…)
kannst du ein Element zu einer ArrayList namensliste
hinzufügen. - Mit
Collections.sort(liste)
kannst du eine unsortierteliste
sortieren. Dazu musst du ganz obenimport java.util.Collections;
aufrufen!
Im Wesentlichen besteht die erste Teilaufgabe aus folgenden einzelnen Schritten: