faecher:informatik:oberstufe:java:aoc:aoc2022:day3:start

Day 3: Rucksack Reorganization

  • Input (d2e - Beispieleingabe aus dem Aufgabentext, d2i Eingabe für die Lösungen auf dieser Wikiseite)

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.

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.

Hilfestellung: Priority-Methode

Lösungsvorschlag

  • faecher/informatik/oberstufe/java/aoc/aoc2022/day3/start.txt
  • Zuletzt geändert: 05.12.2022 20:35
  • von Frank Schiebel