Day 3: Rucksack Reorganization
Aufgabe und Input
- Input (d2e - Beispieleingabe aus dem Aufgabentext, d2i Eingabe für die Lösungen auf dieser Wikiseite)
Ergebnisse
Ergebnis Teil 1 für die Eingabe auf dieser Wikiseite (weicht ab von deiner "echten" Lösung)
Ergebnis Teil 2 für die Eingabe auf dieser Wikiseite (weicht ab von deiner "echten" Lösung)
Hinweise & Tipps
Diese Aufgabe kann man mit Arrays lösen: Wenn man die eingelesenen Zeilen (String) in ein Array aus Zeichen verwandelt, kann man folgendermaßen vorgehen:
Man benötigt also zwei verschachtelte Schleifen, die erste geht durch die erste Hälfte des Zeichen-Arrays und vergleicht in jedem Durchlauf das jeweilige Zeichen mit jedem Zeichen der zweiten Hälfte des Zeichen-Arrays. So kann man identische Zeichen finden.
Dinge, die man wissen muss
1) Um aus einem String ein Zeichenarray zu machen, kann man die Methode toCharArray() verwenden:
// In line[0] ist der String der Zeile // dann gibt line[0].toCharArray() ein Array aus // Zeichen zurück. char[] charArray = line[0].toCharArray();
2) Um den ASCII Code eines Zeichens zu erhalten, kann man folgdes verwenden:
// c ist vom Typ char int asciiCode =((int) c)
Die ASCII-Tabelle findest du z.B. hier. So kannst du dir überlegen, wie du aus dem ASCII Wert eines Zeichens die "Priority" der Aufgabenstellung ermitteln kannst. Am besten, du packst das in eine eigene Methode.