Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. ioBroker Advent of Code

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    ioBroker Advent of Code

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fastfoot @Dutchman last edited by

      @dutchman da haste was losgetreten 🙂 Ist ja echt geil, kannte ich nicht und macht echt fun. Wobei, wenn ich mir meine Zeiten so anschaue möchte ich fast mein Hobby aufgeben. Da sind Leute schon fertig da habe ich nichtmal den Text ganz gelesen geschweige denn verstanden. Wie um Himmels willen kann man das in 1:30Minuten lösen?

      1 Reply Last reply Reply Quote 1
      • haus-automatisierung
        haus-automatisierung Developer Most Active last edited by haus-automatisierung

        Ich probiere das alles in nodejs zu lösen. Tag 1 hab ich mal auf GitHub gepackt (Tag 2 ist auch schon fertig, aber wäre ja blöde das am gleichen Tag zu veröffentlichen):

        https://github.com/klein0r/advent-of-code-2023/blob/main/day-01/index.js

        Gibt bestimmt schönere Wege. Das Problem war, dass da teilweise twone im text steht. Ersetzt man nun erst one mit 1, kommt tw1 raus, obwohl two die erste Zahl ist. Mein Workaround dafür ist sicher nicht der schönste... Habe one mit one1one ersetzt usw. (siehe Code). Dann kommt erstmal twone1one raus, dann two2twone1one usw. Dann habe ich alles entfernt, was keine Zahlen sind. Also Ergebnis 21 usw.

        Aber ich wollte da nun auch nicht super viel Zeit drin versenken, nur um die schönste Lösung zu haben. Wusste erst nicht dass die Zeit läuft 😄 Also morgens aufgemacht und Mittags gelöste: hab also 4+ Stunden gebraucht laut Dashboard...

        F BananaJoe 2 Replies Last reply Reply Quote 2
        • F
          fastfoot @haus-automatisierung last edited by

          @haus-automatisierung interessant ist dass jeder User eigene Inputdaten bekommt und somit unterschiedliche Lösungszahlen. Deine Lösung mit one1one finde ich cool, denn je nachdem ob twone vorne oder hinten steht muss 2 oder aber 1 da stehen. Deine Lösung deckt beide Fälle ab, ich habe da 2 statements gebraucht und mir ausdenken müssen welche Kombinationen da im Einzelnen zu ersetzen sind. Hatte auch gehofft dass es eine RegEx Lösung dafür gäbe, daran habe ich mir zuerst die Zähne ausgebissen um dann doch replace() zu nehmen. Mein Code für beide Tage ist sehr unaufgeräumt weshalb er auch nicht gepostet wird, hoffe aber dass sich das noch bessert 🙂

          Feuersturm haus-automatisierung 2 Replies Last reply Reply Quote 1
          • BananaJoe
            BananaJoe Most Active last edited by

            Wofür gibt es eigentlich die Punkte? Also wonach richtet sich das? Und wenn es die Zeit ist: Ab wann läuft diese?

            1 Reply Last reply Reply Quote 0
            • Feuersturm
              Feuersturm @fastfoot last edited by

              @fastfoot ich hatte mich gestern Abend bei Teil 2 auch in regex festgebissen aber keine Lösung gefunden. Es war wohl auch zu spät das ich auf einen anderen Ansatz gekommen bin. Guter Ansatz @haus-automatisierung 😃

              BananaJoe 1 Reply Last reply Reply Quote 2
              • BananaJoe
                BananaJoe Most Active @Feuersturm last edited by

                @feuersturm sagte in ioBroker Advent of Code:

                Guter Ansatz @haus-automatisierung

                Verdammt mit den Suchen und Ersetzen hätte für Teil 2 quasi nix am Skript ändern müssen. Merke ich mir für das nächste mal

                1 Reply Last reply Reply Quote 1
                • haus-automatisierung
                  haus-automatisierung Developer Most Active @fastfoot last edited by haus-automatisierung

                  @fastfoot sagte in ioBroker Advent of Code:

                  @haus-automatisierung interessant ist dass jeder User eigene Inputdaten bekommt

                  Echt? Dachte die wären für alle gleich.

                  Auf GitHub gibts ja etliche AOC-Repos in allen möglichen Sprachen:

                  • Python: https://github.com/jonathanpaulson/AdventOfCode/blob/master/2023/1.py
                  • Python: https://github.com/oliver-ni/advent-of-code/blob/master/py/2023/day01.py
                  • Python: https://github.com/jmerle/advent-of-code-2023/blob/master/src/day01/part1.py
                  • Python: https://github.com/Noble-Mushtak/Advent-of-Code/blob/main/2023/day01/solution.py
                  • Python: https://github.com/PoustouFlan/AdventOfCode/blob/main/2023/1/star1.py
                  • Kotlin: https://github.com/xiaowuc1/aoc-2023-kotlin/blob/main/src/Day01.kt
                  • Kotlin: https://github.com/Mee42/aoc-2023/blob/master/src/main/kotlin/day1/Main.kt
                  • Project Jupyter: https://github.com/tung491/aoc_2023/blob/main/d1.ipynb
                  • Ruby: https://github.com/petertseng/adventofcode-rb-2023/blob/master/01_trebuchet.rb
                  • Ruby: https://github.com/swhitt/advent-of-code/blob/main/days/2023/day01/solution01.rb
                  • ...

                  Kann man viel lernen 🙂

                  1 Reply Last reply Reply Quote 0
                  • BananaJoe
                    BananaJoe Most Active @haus-automatisierung last edited by

                    @haus-automatisierung sagte in ioBroker Advent of Code:

                    Aber ich wollte da nun auch nicht super viel Zeit drin versenken, nur um die schönste Lösung zu haben. Wusste erst nicht dass die Zeit läuft Also morgens aufgemacht und Mittags gelöste: hab also 4+ Stunden gebraucht laut Dashboard...

                    Also wenn du dich auf https://adventofcode.com/2023/leaderboard/self beziehst sieht das für mich aus wie "Wieviel Zeit ist seit dem herauskommen des Rätsel vergangen", ich hatte für Tag 2 teil 1 keine 10 Minuten gebraucht und dort steht bei mir 05:14:40

                    haus-automatisierung 1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @BananaJoe last edited by

                      @bananajoe sagte in ioBroker Advent of Code:

                      ich hatte für Tag 2 teil 1 keine 10 Minuten gebraucht und dort steht bei mir 05:14:40

                      Ah, das ist bestimmt die lokale Uhrzeit (EST/UTC-5), wann man die Lösung eingereicht hat.
                      Die neuen Tage werden ja auch um 00:00 Uhr EST/UTC-5 veröffentlicht.
                      Dort sitzt ja scheinbar der Autor.

                      Könnte passen, muss ich mal drauf achten. Also 6 Stunden drauf rechnen müsste dann unsere Zeit ergeben.

                      1 Reply Last reply Reply Quote 1
                      • BananaJoe
                        BananaJoe Most Active last edited by

                        Dann wäre für mich immer noch die Frage wie die Punkte errechnet werden? Anzahl der Fehlversuche? Gestern hatte ich es immer erst im 2. Anlauf, heute dann immer auf Anhieb Fehlerfrei.

                        haus-automatisierung 1 Reply Last reply Reply Quote 0
                        • haus-automatisierung
                          haus-automatisierung Developer Most Active @BananaJoe last edited by haus-automatisierung

                          @bananajoe Ich hab irgendwo gelesen, dass man so viele Punkte bekommt, wie Leute in der Gruppe sind. Also sind z.B. 25 Leute in der Gruppe, bekommt der erste 25 Punkte, der zweite 24 Punkte usw.

                          Kommen neue Leute dazu, wird das entsprechend aufaddiert für die Vergangenheit. Deswegen steigt auch ab und zu der Punktestand, obwohl man nix gemacht hat.

                          Hier meine Lösung für Tag 2:
                          https://github.com/klein0r/advent-of-code-2023/blob/main/day-02/index.js

                          Habe mir überlegt den String in ein Objekt zu wandeln mit ein paar anonymen Funktionen. Sicher nicht das schnellste, aber auf der Basis kann man am besten weiter arbeiten. Daher war Part 2 auch ganz einfach umzusetzen.

                          BananaJoe 1 Reply Last reply Reply Quote 0
                          • BananaJoe
                            BananaJoe Most Active @haus-automatisierung last edited by

                            Ich sitze nun schon seit 3h an Tag 3, Part 2.
                            Irgendetwas fehlt in meinen Regeln oder eine wird Falsch angewandt ... verdammt

                            haus-automatisierung 1 Reply Last reply Reply Quote 0
                            • haus-automatisierung
                              haus-automatisierung Developer Most Active @BananaJoe last edited by haus-automatisierung

                              @bananajoe sagte in ioBroker Advent of Code:

                              Ich sitze nun schon seit 3h an Tag 3, Part 2.

                              Ich hatte glücklicherweise die Struktur vorher so aufgebaut, dass Teil 2 super schnell ging:

                              https://github.com/klein0r/advent-of-code-2023/blob/main/day-03/index.js

                              bluegaspode 1 Reply Last reply Reply Quote 0
                              • bluegaspode
                                bluegaspode @haus-automatisierung last edited by bluegaspode

                                Punkte werden berechnet wie @haus-automatisierung beschrieben:

                                • Die Rätsel werden immer Punkt 06:00 (weltweit) veröffentlicht (in den USA um also Mitternacht). Dann gilt: wer am schnellsten Part 1 gewinnt (und dann Part2) bekommt die meisten Punkte. Für alle also quasi die gleiche Chance (wenn man 'pünktlich' aufsteht).

                                • Man bekommt als erster immer so viele Anzahl Punkte wie Teilnehmer im Leaderboard. Als zweiter einen Punkt weniger. Das relative Ranking zueinander wird dadurch nicht beeinflusst, selbst wenn Teilnehmer dazukommen.
                                  Als Beispiel: Liege ich 2 Punkte hinter dem Erstplatzierten, muss ich zweimal schneller sein (z.B. an einem Tag mit Part I und Part II), um einzuholen. Mit etwas Glück setz der Erstplatzierte mal einen Tag aus, dann verliert er sehr schnell viele Punkte, weil er an so einem Tag dann nur wenig Punkte macht.

                                • Die Aufgaben sind in der Regel SEHR genau beschrieben, auch inkl. Beispielen. Man muss aber auch genau lesen. Nicht JEDER Corner-Case wird aktiv angesprochen, auf die muss man schon selber kommen. Wenn etwas (also Sonderfälle) nicht explizit ausgeschlossen wurde, gehe davon aus, dass es im finalen Datenset vorkommt.

                                • Für später: spätere Aufgaben laufen oft in hohe Zahlen rein. Sehr viele sind schon früh gescheitet, weil sie mit Java Ints arbeiten, (wer Python nutzt, hat diese Probleme nicht). Auch später: gibt es Aufgaben, die von der Berechnungszeit sehr lange dauern, wenn man simple Ansätze nutzt. Sobald das Programm länger als 1-5min rechnet, ist das ein klares Indiz, dass es Abkürzungen gibt, um das Ergebnis gut zu berechnen (also man die Gehirnzellen extra anstrengen muss)

                                • In der Regel sind Aufgaben an Wochenende umfangreicher / komplizierter als in der Woche

                                • Kurz vor Weihnachten ist der Schwierigkeitsgrad am höchsten, zum 24. + 25. fällt es dann (netterweise) wieder deutlich ab.

                                • Achtung: den 50igsten Stern bekommt man nur, wer alle 49 Sterne davor hat. Die Belohnung: der Ascii-Art Kalender bekommt dann meist kleine Animiationen. Außerdem sind in jedem Text versteckte Worte hinterlegt, mit lustigen Tooltips. Die kann man auch jetzt schon finden (muss man halt über jedem Wort hovern). Mit 50 Sternen bekommt man sie markiert.

                                • @Negalein : die 'Ausrede', dass es ohne Windows Tools nicht zu lösen ist zählt nicht. Es gibt Kandidaten, welche (meist bis zur Hälfte) alles mit Excel lösen. Als Challenge sind hierbei nur Formeln erlaubt, kein VBA 🙂
                                  Hier ein Beispiel für heute / Tag 4: https://www.reddit.com/r/adventofcode/comments/18ael0e/2023_day_4_a_successful_4th_day_using_only_excel/
                                  Hier ein Beispiel für gestern / Tag3 : https://www.reddit.com/r/adventofcode/comments/189qs63/2023_day_3_a_successful_3rd_day_using_only_excel/

                                Grüße von bluegaspode / Stefan (Teilnehmer seit 2018)

                                haus-automatisierung Negalein 2 Replies Last reply Reply Quote 3
                                • haus-automatisierung
                                  haus-automatisierung Developer Most Active @bluegaspode last edited by

                                  @stefan-hansel Danke, das macht ja total Mut für die nächsten Wochen 😢 Ich glaube dafür fehlt mir hinten raus die Zeit...

                                  1 Reply Last reply Reply Quote 0
                                  • I
                                    ignis-draco last edited by

                                    Falles jemand noch mehr "Spaß" haben möchte. Man kann auch die Aufgaben aus den Letzten Jahren machen (bis 2015).
                                    Und selbst unser Leaderboard geht dort. Ich habe mal mit 2015 Angefangen und die Aufgaben hat z.b. Shadouw auch schon gemacht.

                                    bluegaspode 1 Reply Last reply Reply Quote 1
                                    • bluegaspode
                                      bluegaspode @ignis-draco last edited by

                                      Was mich total motiviert 'dabeizubleiben'

                                      • man lernt wahnsinnig viel, auch wenn man steckenbleibt (zur Not 24h warten, und dann von den Diskussionen oder anderen Lösungen lernen)
                                      • dadurch dass es so viele Lösungen gibt, kann man gut reflektieren, wo man selber steht. Geht der Code kürzer, geht er lesbarer, wie würde es in anderen Sprachen aussehen - gibt es da Konstrukte, die es in der eigenen Sprache nicht gibt
                                      • wer ChatGPT(Pro) oder GitHub Copilot noch nie ausprobiert hat: dieser Monat lohnt sich extrem, mal 30€ auszugeben und auf Herz und Nieren zu testen. ChatGPT, wenn man komplett ahnungslos ist und Tipps braucht, CoPilot nimmt einem viel Arbeit beim späteren Schreiben ab.
                                      • die Community auf Reddit ist der Hammer, jeden Tag entstehen Visualisierungen, Tutorials, Games zur aktuellen Aufgabe. z.B. hier: der heutige Tag als Interaktives Mini-Game, wo du die Rubbellose mit der Maus freirubbeln kannst 😄 )Bildschirmfoto 2023-12-04 um 15.41.24.png (https://www.reddit.com/r/adventofcode/comments/18afumn/2023_day_4_part_1python_terminal_visualization/). Ja - wie geil ist das denn (wenn andere zu viel Zeit haben :D)
                                      bluegaspode haus-automatisierung 2 Replies Last reply Reply Quote 1
                                      • bluegaspode
                                        bluegaspode @bluegaspode last edited by

                                        Einer der Top-'Spieler' recorded auch jeden Tag:

                                        Wie man Tag 4 (Part 1 + Part 2) in 4 Minuten löst (inkl. einmal Fehler noch machen), sieht man hier: https://www.youtube.com/watch?v=tXnPMSSQgCU

                                        Der wirkt noch nichtmal gestresst, tippt einfach drauflos ... macht das aber auch seit mehreren Jahren und noch viele andere Wettbewerbe.

                                        OliverIO 1 Reply Last reply Reply Quote 0
                                        • haus-automatisierung
                                          haus-automatisierung Developer Most Active @bluegaspode last edited by haus-automatisierung

                                          @stefan-hansel sagte in ioBroker Advent of Code:

                                          kann man gut reflektieren, wo man selber steht

                                          Aktuelles Fazit: Ich kann gar nix (im Vergleich zu anderen)... In Python bin ich z.B. auch nicht so super fit. Da fällt es mir schon schwer die Lösungen der anderen überhaupt zu lesen. Aber ja: Man lernt super viel - das stimmt.

                                          Bleibe erstmal dran, bis es einfach zu viel Zeit in Anspruch nimmt. Macht ja schon Spaß die Rätsel zu lösen, aber in der Zeit könnte ich auch ein paar Issues fixen (und da haben ja alle was von) 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • MartinP
                                            MartinP @Jey Cee last edited by

                                            @jey-cee said in ioBroker Advent of Code:

                                            Hier mal ein Thema in dem alle mitschreiben können zum Event.

                                            @dutchman

                                            aber diese werte haben auch zahlen in text die mitzählen

                                            Ich sag mal so das ist noch Kindergarten. Da kommen noch 2 Hürden, die erste ist nicht ganz Offensichtlich, kann man aber erkennen wenn man mal kurz Umgekehrt liest. Bei der 2ten hab ich keine Ahnung wie man da drauf kommen soll.

                                            Jeden falls konnte ich die Aufgabe nicht mal mit den Fertigen Lösungen anderer abschließen. Das ist schon Frustrierend.

                                            Solche Thread-Eröffnungen mag ich...

                                            Über etwas reden, und keine Informationen beibringen. Ein kleiner Link ist doch wohl nicht zu viel verlangt ...

                                            haus-automatisierung 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            847
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            12
                                            86
                                            7339
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo