Blog
RTLV 7 – Sunlight by Peter Scharl
Die Level
Level 1
Level 1 war sehr einfach. Aus dem gegebenen Text musste nur der relevante Teil herausgeholt werden. Dafür reichte LINKS() oder TEXTVOR().
Level 2
In Level 2 musste die Summe aller Zahlen berechnet werden. Man konnte den Text mit TEXTTEILEN aufteilen und den Fehler mit WENNFEHLER oder ZUSPALTE abfangen, wenn Text in Zahlen umgewandelt wurde. Alternativ konnte man mit REGEXEXTRAHIEREN direkt nur die Ziffern auslesen.
Level 3
Bei Level 3 sollte man sagen, wo sich die Sonne befindet. Gegeben waren Text, Ziffern und ein S für die Sonne. Diese Angaben mussten zunächst in das korrekte Format gebracht werden. Am einfachsten war es, alles mit ZUSPALTE zu flatten und anschließend mit XVERWEIS nach der Sonne zu suchen. Das ging auch mit WENNS und ZUSPALTE, war aber unnötig komplizierter.
Level 4
Level 4 führte die Sonnenscheinrichtung ein. Von der Sonne aus sollte man ermitteln, welche Bäume in ihrer Richtung angestrahlt werden. Dafür habe ich ein LAMBDA verwendet, das mit einem Pfeil und einer Adresse – der Sonnenposition aus Level 3 – jeweils die nächste Adresse ausgibt. Das habe ich mehrfach angewendet, um in der Richtung des Sonnenlichts durch den Wald zu laufen. Danach konnte ich mit XVERWEIS alle Adressen auf die Werte abbilden und diese aufsummieren.
Level 5
In Level 5 blockierte ein Baum das Sonnenlicht für kleinere Bäume dahinter. Wenn die Reihe beispielsweise S → 5 → 8 → 4 lautet, bekommen der Baum mit Höhe 5 und der mit Höhe 8 Sonne ab. Der Baum mit Höhe 4 wird vom Baum mit Höhe 8 verdeckt.
Die Grundidee blieb gleich: Zuerst holt man sich die relevanten Adressen und liest die Höhen der Bäume aus. Neu war, zu bestimmen, welche davon tatsächlich Sonne abbekommen. Dabei hilft SCAN in Verbindung mit MAX. Aus SCAN(;{5.8.4};MAX) wird beispielsweise {5.8.8}. Die 4 taucht im laufenden Maximum nicht mehr auf, weil das Maximum aus 4 und 8 weiterhin 8 ist. Mit EINDEUTIG erhält man die Höhen der angestrahlten Bäume und kann deren Summe von der Summe aller Bäume abziehen. Gesucht war schließlich die Höhe der nicht angestrahlten Bäume.
Level 6
Level 6 war im Prinzip dasselbe, nur strahlte eine Sonne in mehrere Richtungen. Mit REDUCE konnte ich die zweite Richtung ebenfalls abarbeiten. Danach nahm ich wieder die Summe der angestrahlten Bäume und zog sie vom Gesamtwert ab.
Level 7
In Level 7 kam eine zweite Sonne hinzu. Ich habe die Formel aus Level 6 um ein weiteres REDUCE erweitert. Im Endeffekt waren es geschachtelte REDUCE-Funktionen: einmal für die Sonnen und einmal für die Strahlen jeder Sonne.
Diese Lösung war leider nicht korrekt, weil die Aufgabe nach der Summe der Höhen der Bäume fragte, die nicht angestrahlt wurden. Mit meiner Logik war ein doppeltes Zählen möglich. Wenn in B3 eine Sonne nach rechts strahlt und damit C3, D3 und E3 erreicht, während in E3 eine zweite Sonne nach links strahlt und D3, C3, B3 und A3 erreicht, werden mehrere Adressen doppelt gezählt.
Hier war es also nicht korrekt, einfach über die Werte zu gehen. Die Adressen hätten zuerst zusammengeführt und anschließend eindeutig ausgewertet werden müssen. Während der Runde habe ich diesen Fehler leider nicht gesehen.
Bonusaufgaben
Die Bonusaufgaben waren in Ordnung. Ich war noch keine 15 Minuten beschäftigt und hatte bereits alle sieben Level fertig – auch wenn Level 7 letztlich nicht vollständig korrekt war. Dadurch hatte ich viel Zeit für die Bonusaufgaben.
Bonus 3 und Bonus 4 fand ich allerdings relativ schwer. Im Nachhinein hatte ich gute Ideen, wie ich beide Aufgaben hätte lösen können, aber während der Runde bin ich nicht darauf gekommen. Deshalb habe ich sie manuell bearbeitet und dabei viel Zeit verloren.
Bonus 5 konnte ich nicht korrekt lösen, weil er auf Level 7 aufbaute und mein Level 7 bereits falsch war. Aber selbst mit einer korrekten Level-7-Lösung hätte ich die Aufgabe falsch verstanden. Gesucht war die Summe aller Werte in Level 7, wenn die Sonnen immer nur in eine Richtung strahlen. Ich hatte die Frage anders interpretiert.
Ergebnis und Fazit
Im Endeffekt bin ich 15. geworden. Zeitlich war ich trotz der Bonusaufgaben gut dabei, aber eben nicht mit voller Punktzahl.
Den Fall fand ich grundsätzlich gut. Mich stört allerdings, wenn sich Aufgaben sehr gut manuell lösen lassen. Die Bonusaufgaben habe ich händisch bearbeitet, und auch die Level 1 bis 6 konnte man relativ einfach ohne Formeln erledigen. Level 7 war schon schwieriger, aber auch das wäre noch manuell machbar gewesen. Dadurch konnten viele Punkte gesammelt werden, ohne wirklich Excelkenntnisse anzuwenden – und das finde ich nicht ideal.
Trotzdem war es ein schöner Fall. Die Wälder hätten für meinen Geschmack nur größer sein können, damit eine manuelle Bearbeitung nicht so einfach möglich gewesen wäre.