🌟 Advent of Code (AoC) 2021 🌟

Permalänk
Medlem

🌟 Advent of Code (AoC) 2021 🌟

Tråd från 2018.
Tråd från 2019.
Tråd från 2020.

Nytt år, nya möjligheter att tagga till och ta alla 50 stjärnor! ✨ Tack @Dimestam för påminnelsen om att det är dags för 2021 års AoC-tråd. I år kommer jag inte ha möjlighet att köra alla luckor vid publicering, men jag firar jul hos svärföräldrarna och hoppas ha tid att göra problemen då!

INSTRUKTIONER

Vi fortsätter nyttja samma leaderboard som förr.
Leaderboard: 115994-59705230

Inläggsform
Dag:
Språk:
Lösning:

Om du vill dela med dig av kod, använd [spoiler]-taggar.

Vi kan väl börja med att ge lite tips och råd till eventuella nytillkomna?

Som förra året är mitt bästa råd, som man bör göra redan innan 1a december, att kolla på föregående års AoC och skriva boiler-plate-kod för inläsning/parsning av data. Många ovärderliga minuter per dag kommer ägnas detta, om man inte har en hyffsat flexibel mall att följa.

Permalänk
Datavetare

Självklart måste vi som ska delta också skylta med vilket språk man tänker ta sig an julkul:et med

Har historiskt passat på att lära mig grunderna i något nytt språk varje år. Har rätt ont om tid detta år, men har ändå för avsikt att i alla fall innan årets slut ha plockat alla 50 stjärnor (har alla 50 de fyra senaste åren, så inte läge att bryta den trenden...).

För egen del blir det därför en återgång till Rust, vilket jag använde för första gången i 2019 års Advent of Code. Kanske försöker mig på Kotlin någon dag, det känns som "nästa språk på tur" (körde Swift 2020).

Angående postande av lösningar: det fungerar att posta lösningar direkt i forumet om man, framförallt om man läser igenom SweClockers BB-kod guide.

Om man har eller kan tänka sig skaffa ett GitHub konto blir det lättare för andra att ta del av din lösning via en länk till koden på GitHub (eller motsvarande tjänst).

Permalänk
Medlem
Skrivet av Yoshman:

Självklart måste vi som ska delta också skylta med vilket språk man tänker ta sig an julkul:et med

När jag var klar med AoC 2020 bestämde jag mig för att köra TypeScript 2021, mest för att jag har så dålig koll på webutveckling. Emellertid la jag lite tid på att lära mig Svelte, i somras, och nu när jag byggt Kaffefiltret.se känner jag att min akuta TypeScript-inkompetens är botad.

Näst på listan stod Elixir. Gav det en helg, men jag mindes snabbt varför jag ogillade både Haskell och Erlang på universitetet; jag är dålig på ren funktionell programmering. Funktionella inslag i min Python-kod -- javisst -- men när allt måste vara rent blir det för krängligt.

Så nu funderar jag på om jag ska köra Python i år igen och fokusera jättemycket på att nyttja alla coola features som kommit i 3.8, 3.9 och 3.10; eller om jag ska välja något mer esoteriskt som Kotlin, Julia eller kanske Swift.

Permalänk
Medlem

Upptäckte AoC först i somras och gjorde några av problemen från 2020. Roliga och nyttiga för mig som blivande utvecklare. I år tänkte jag vara med från början och köra C++ (och Python, om jag hinner). Wish me luck!

Permalänk
Medlem

Blir väl F# som jag tänkte köra förra året, men hade inte riktigt tid / lust när det väl drog igång

Permalänk
Medlem
Skrivet av GLaDER:

skriva boiler-plate-kod för inläsning/parsning av data.

Jaja, det ja.

Inget för mig med andra ord

Permalänk
Medlem

Jag har inte klarat / haft tid för mer än 3-5 dagar tidigare år. I år tänker jag försöka komma lite längre.

Tror det blir Elixir eller Go för min del, har inte riktigt bestämt mig. Hade nog klarat det bättre I Javascript men vill försöka lära mig mer av någonting nytt än att bara kötta igenom uppgifterna.

Permalänk
Medlem

Är alltid superambitiös i början men sen orkar jag inte bli klar. Alltid massa deadlines på jobbet o december!

Permalänk
Medlem
Skrivet av GLaDER:

När jag var klar med AoC 2020 bestämde jag mig för att köra TypeScript 2021, mest för att jag har så dålig koll på webutveckling. Emellertid la jag lite tid på att lära mig Svelte, i somras, och nu när jag byggt Kaffefiltret.se känner jag att min akuta TypeScript-inkompetens är botad.

Näst på listan stod Elixir. Gav det en helg, men jag mindes snabbt varför jag ogillade både Haskell och Erlang på universitetet; jag är dålig på ren funktionell programmering. Funktionella inslag i min Python-kod -- javisst -- men när allt måste vara rent blir det för krängligt.

Så nu funderar jag på om jag ska köra Python i år igen och fokusera jättemycket på att nyttja alla coola features som kommit i 3.8, 3.9 och 3.10; eller om jag ska välja något mer esoteriskt som Kotlin, Julia eller kanske Swift.

Ett beslut har fattats. Det blir Python i år.

Permalänk
Medlem

Hur är svårighetsgraden på detta?
Är hobbyknackare sedan många år och tycker det är kul att bara koda diverse grejjer men har alltid svårt att hitta projekt.
Tänkte då att detta kanske kan vara kul för att få små "projekt" att slänga ihop.
Men ingen idé om man måste vara senior kodare för att ha en chans att klara av dem.

Permalänk
Medlem
Skrivet av bardbard:

Hur är svårighetsgraden på detta?
Är hobbyknackare sedan många år och tycker det är kul att bara koda diverse grejjer men har alltid svårt att hitta projekt.
Tänkte då att detta kanske kan vara kul för att få små "projekt" att slänga ihop.
Men ingen idé om man måste vara senior kodare för att ha en chans att klara av dem.

EXTREMT varierande men du måste verkligen inte vara någon superutvecklare för att klara av de flesta dagarna. Det handlar mer om hur mycket tid du har att lägga samt hur "snygga" dina lösningar kommer bli.

Ta en koll på föregående år för att få en känsla https://adventofcode.com/2020

Permalänk
Medlem
Skrivet av bardbard:

Hur är svårighetsgraden på detta?
Är hobbyknackare sedan många år och tycker det är kul att bara koda diverse grejjer men har alltid svårt att hitta projekt.
Tänkte då att detta kanske kan vara kul för att få små "projekt" att slänga ihop.
Men ingen idé om man måste vara senior kodare för att ha en chans att klara av dem.

Jag är absolut ingen senior kodare (möjligen senior) men tycker det är ganska lagom nivå. Vissa uppgifter anser jag vara väldigt lätta , andra är knepigare. Men jag tror inte att du behöver vara orolig för själva kodandet då man kan lösa uppgifterna på många olika sätt. Min uppfattning är att det minst lika mycket handlar om att analysera själva uppgiften så att man vet vad koden skall behöva uträtta.

Jag tittade lite på föregående års problem (inspirerad av förra årets tråd om AoC här) och tyckte det var ganska kul med varierande uppgifter och svårighetsgrad.

Jag hade tänkt försöka använda Dyalog APL i år, vi får se hur det slutar.

Permalänk
Medlem
Skrivet av bardbard:

Hur är svårighetsgraden på detta?
Är hobbyknackare sedan många år och tycker det är kul att bara koda diverse grejjer men har alltid svårt att hitta projekt.
Tänkte då att detta kanske kan vara kul för att få små "projekt" att slänga ihop.
Men ingen idé om man måste vara senior kodare för att ha en chans att klara av dem.

Man brukar kunna klämma av ett par dagar i början, men det blir snabbt svårt (för mig som är en obildad tölp iaf)

Permalänk
Medlem

Vill försöka lösa så många uppgifter som möjligt i Erlang i år, men i slutändan lär majoriteten vara skrivna i Haskell ändå.

Skrivet av Tespo:

Jag hade tänkt försöka använda Dyalog APL i år, vi får se hur det slutar.

Kul! Mer kärlek till APL behövs idag

Permalänk
Medlem

Trevligt! Jag kommer köra med Nim i år igen, ett språk som påminner om Python i syntax men som är kompilerat och har typer. Om någon här vill utforska ett nytt språk kan jag rekommendera Nim Se mina lösningar från förra året om du vill ha ett hum av hur Nim-kod ser ut: https://github.com/HugoGranstrom/AdventOfNim/tree/main/2020

Ett exempel på hur Nim kan vara ganska smidigt för att parse:a text är ett exempel från 2018 där man skulle parse:a textsträngar likt "#123 @ 3,2: 5x4". Detta görs enkelt i Nim utan att använda regex:

let (success, id, left, top, width, height) = scanTuple(claim, "#$i @ $i,$i: $ix$i")

Man skriver helt enkelt bara hur strängen ska se ut men stoppar in "$i" där man förväntar sig en integer (finns "$w" för ord, "$f" för flyttal med mera).

Ser fram emot att få gå upp tidiga mornar och koda lite igen B-)

Permalänk
Medlem

Tycker AoC är rätt kul men själv gjorde jag kanske 4 dagar förra året och tröttnade sen för vissa uppgifter tog så lång tid att jag hellre spelade spel men lycka till alla andra!

Permalänk
Medlem

Det brukar vara ganska lätt i början. Sedan brukar det lite knepigare uppgifter, ungefär samtidigt som kalendern fylls av en massa annat. Kunde inte AOC köra när det inte är lucior och skolavslutningar och julbord på jobbet och slutet på året-crunchen och julklappshandling och allt annat stök? Men så länge man är klar till trettondagen så är det fullt godkänt

Gör ett försök och se hur länge ni orkar att hänga med. Om ni kör helt fast kan man alltid "inspireras" av andras lösningar...

Permalänk
Medlem

Ska försöka ta mig tid till det här i år. Hade gärna gjort det i Rust men i slutändan blir det nog Python alternativt Java.

Permalänk
Medlem

Jag har ju tänkte försöka sätta mig in lite i Go hur länge som helst eller kanske Python eftersom min son får en nybörjarbok för just Python i julklapp, men känner jag mig rätt så är jag oftast rätt dränerad efter jobbet så orken kommer nog inte finnas. Kul initiativ oavsett.

Permalänk
Medlem

Kan nog delta med Java då det är språket som primärt används på jobbet.
Första gången för mig att delta Hur är upplägget?

Jag kollade på första uppgiften från 2020, det verkade som att man skulle iterera igenom en lista med x antal värden, plocka ut och summera x och y så att summan blev 2020 därefter multiplicera x och y och resultatet är svaret, korrekt?

Är junior inom programmering men vill gärna lära mig mer. Vad har ni för tips? Hur är svårighetsgraden?

Hur fungerar det om man kopplar sitt Github konto?

Permalänk
Medlem

Har i flera år sagt att jag ska ta mig an denna utmaning men det har aldrig blivit av. Den tid man har över till annat blir ofta till film eller spel istället (efter fru och barn gått och lagt sig). Sen är jag väl lite rädd att jag ska känna mig korkad ifall jag inte klarar av en uppgift samtidigt som jag ser folk här nämna att det är många uppgifter som är väldigt enkla

*edit*
Kollade tillbaka på förra året och de två första löstes fort. Kanske vågar mig på det här trots allt, OM jag kommer ihåg det

Permalänk
Medlem

Kanske ska ge Haskell ett gott försök, tog på mig lite för svårt förra gången jag gav det en chans. Annars får de bli "constexpr everything" C++20 som backup

Permalänk
Medlem

Jag fegar och kör javascript tänkte jag, känner mig skapligt grön som utvecklare men ser fram emot att få knäcka lite problem och försöka få skaplig struktur på koden.

Ingen som vill köra i ArnoldC.js ?

Permalänk
Medlem

Jag kommer nog köra Kotlin. Uppgifterna blir rätt svåra efter ett tag, så kör helst ett språk jag är bekväm med. Ska jag försöka med något nytt språk kommer jag säkert ge upp rätt snabbt.

Permalänk
Medlem
Skrivet av bardbard:

Hur är svårighetsgraden på detta?
Är hobbyknackare sedan många år och tycker det är kul att bara koda diverse grejjer men har alltid svårt att hitta projekt.
Tänkte då att detta kanske kan vara kul för att få små "projekt" att slänga ihop.
Men ingen idé om man måste vara senior kodare för att ha en chans att klara av dem.

De första uppgifterna är i princip helt triviala, i stil med "läs in en lista siffror från en textfil, hitta den största siffran". Sedan blir det lita regex, lite enklare datastrukturer, och sen efter ett tag blir det för tidskrävande för mig iallafall. Förra året gjorde jag 10 av uppgifterna.

Permalänk
Medlem

Hade varit kul att testa iår, var sugen förra året men blev aldrig av. Blir python isåfall!

Permalänk
Medlem

Ska testa detta för första gången... måste få upp en miljö bara

Permalänk
Medlem

Helt ny på detta så jag kollade på 2020:1.
Vart hittar jag "your expense report"?

Permalänk
Medlem
Skrivet av GannTrader:

Helt ny på detta så jag kollade på 2020:1.
Vart hittar jag "your expense report"?

Det är input till ditt pussel

https://adventofcode.com/2020/day/1/input

Permalänk
Medlem
Skrivet av GLaDER:

Aha måste tydligen vara inloggad för att kunna se detta.