Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:java:aoc:aoc2021:day3:start [06.12.2021 15:16] – angelegt sbel | faecher:informatik:oberstufe:java:aoc:aoc2021:day3:start [18.12.2021 09:30] (aktuell) – [Teil 1] Mareike Nutz | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Tag 3 ====== | + | ====== Tag 3: Binäre Diagnostik |
+ | ===== Aufgabe, Beispiele, Input ===== | ||
+ | |||
+ | * Aufgabe: https:// | ||
+ | * Input-Dateien: | ||
+ | * Ergebnis für die Datei '' | ||
+ | |||
+ | ===== Teil 1 ===== | ||
+ | |||
+ | Für Teil 1 reicht es aus, wenn man die Gamma-Rate bestimmt, da die Epsilon-Rate das bitweise Inverse der Gamma-Rate ist. | ||
+ | |||
+ | Um die Gamma-Rate zu bestimmen, muss man durch alle Zeilen der Eingabe und alle Stellen der Zahlen gehen und die Einsen zählen. Ein Methode, die hier wertvoll ist, ist '' | ||
+ | |||
+ | <code java> | ||
+ | char[] chars = line[0].toCharArray(); | ||
+ | </ | ||
+ | |||
+ | So erhält man ein Array aus '' | ||
+ | |||
+ | <code java> | ||
+ | int numBits = list.get(0)[0].toCharArray().length; | ||
+ | </ | ||
+ | |||
+ | ===== Teil 2 ===== | ||
+ | |||
+ | In Teil zwei kann man die ArrayList verkleinern, | ||
+ | |||
+ | <code java> | ||
+ | // Erstelle eine Kopie der InputListe mit dem Namen myList | ||
+ | ArrayList< | ||
+ | // Erstelle eine Liste, die die zu löschenden Elemente aufnimmt | ||
+ | ArrayList< | ||
+ | |||
+ | |||
+ | // Für jedes Bit... | ||
+ | |||
+ | // Finde raus, welche zeilen gelöscht werden müssen | ||
+ | // füge diese in die toDelete Liste ein: | ||
+ | [...] | ||
+ | toDelete.add(line); | ||
+ | [...] | ||
+ | // to Delete aus myList löschen | ||
+ | myList.removeAll(toDelete); | ||
+ | // toDelete leeren für den nächsten Bit-Durchlauf | ||
+ | toDelete.clear(); | ||
+ | // Bit-Durchläufe abbrechen, wenn es nur noch | ||
+ | // einen Wert gibt | ||
+ | if (myList.size() == 1) { | ||
+ | break; | ||
+ | } | ||
+ | [...] | ||
+ | </ |