#adventofcode

8
41
AoC retro

No i udało się nagonić wszystkie zaległości i ukończyć AoC 2023 jeszcze w tym roku.

Był to mój drugi, po 2022, rok aktywnego rozwiązywania kalendarza do samego końca i na bieżąco (w sensie - w tym samym roku ). Historia i ASCII art to zdecydowany plus tegorocznej edycji. Problemy - te były ok, choć zeszły rok bardziej mi się spodobał.

W poprzednim roku używałem Pythona z Jupyter Notebook, co pozwalało szybko uzyskać działający kod. W tym wybór padł na Rust. Ogólne doświadczenie z tym językiem okazało się bardzo przyjemne, choć wiadomo - trzeba nieco więcej czasu poświęcić na przygotowanie inputu i testowanie/debugowanie.

No właśnie - to testowanie i debugowanie zupełnie zmieniło moje podejście. Zamiast szybko, jako-tako coś napisać i dalej ew. refactorować, to w końcowych dniach górował TDD z małymi krokami. Choć zajęło to dość sporo czasu, to finalna odpowiedź była dobra za pierwszą próbą. Opłaciło się.

Jednak jeśli chodzi o algebrę liniową i grafy - Python oferuje zdecydowanie lepsze biblioteki (NumPy i NetworkX) i zwartą składnię. Szczególnie odczuwalne było to w dniu 25, gdzie w Pythonie rozwiązanie to 1 funkcja z NetworkX a w Ruście... nie xD.
Podobnie algebra liniowa i dzień 24, który to rozwiązać można symbolicznie na papierze - gdy trzeba zaimplementować od zera, to tak średnio. Choć tu akurat moja wina, bo niby jest kilka bibliotek, ale z żadnej nie korzystałem

Dodatkowym odkryciem jest edytor Helix - świetna i lekka alternatywa dla *vim czy VS Code. Rozsądne defaulty, minimalny config i współpraca z LSP out of the box.

#adventofcode
6f3048ca-7bf6-4d6b-bf6e-0a8cd2d2c273
4e4a613e-0794-4201-b2f2-611ce942a779
Bujnik

Najs, dla mnie to był pierwszy AOC, całość, oprócz 24/2 i 25 zrobiłem w Java, równania po próbie rozwiązania na kartce na piechotę zrobiłem w mathematica i ostatnie z rozpędu też, fajnie nawet się udało zwizualizować ten problem.


Na pewno jeśli chciałbym w kolejnych latach cisnąć, to jakaś własna biblioteczka byłaby mega użyteczna, w tym roku byłem zbyt leniwy żeby repo robić.

rust-n-dust

@Bujnik własna biblioteka w miarę rozwiązywania - to, co się powtarza kilka razy leci do lib. Dla mnie najtrudniejsze w tym "ciśnięciu" byłoby wstawanie przed 6:00 przez niemal cały grudzień :D.

koszotorobur

@rust-n-dust - niezłe poświęcenie chłopie!

Zaloguj się aby komentować

AOC Dzień 20, gwiazdek: 40

Dziś część 2 trochę shackowana, ciekawe czy dałoby się to napisać bez tego - prawdopodobnie tak, jeśli byłyby w treści zadania zapewnione odpowiednie warunki

#adventofcode

Zaloguj się aby komentować

Dzień 17, stan gwiazdek: 34.

Pierwszy raz uczestniczę w tym, ale mam wrażenie, jakbym nadrobił studia informatyczne, których nie zrobiłem, przebranżawiając się

#adventofcode

Zaloguj się aby komentować

AoC 16/25
Oj jak dzisiaj siadło...
Po sprawdzeniu testowych przypadków, przełączenie się na dzisiejszy input dało poprawną odpowiedź za pierwszym razem.
Dodatkowo ASCII art na głównej wprowadza pewien smaczek...

#adventofcode

Zaloguj się aby komentować

AoC 15/25
Halo, halo, jak tam postępy? Ostatnie kilka dni to bardzo fajne zadanka, wręcz odprężające.
Przyznam się, że do tej pory w ogóle nie wczytywałem się w opisywaną historię. Pora to nadrobić.

#adventofcode
Bujnik

Dziś w końcu udało się w miarę sprawnie zrobić, tak, to utykałem na debugowaniu przez ostatnie dni na part 2

Zaloguj się aby komentować

AoC 13/25
Dziś proste zadanko, ale tyle ile czasu spędziłem nad debugowanie kodu to szkoda gadać...
Mój spaghetti code poległ na drugiej części, więc trzeba było porządnie wszystko przepisać i wtedy poszło.

#adventofcode

Zaloguj się aby komentować

Moje statsy z implementacji 11/25 AoC w Rust. Część plików zawiera wklejone przykłady z unit testami, a same inputy wczytuję z plików.

#adventofcode #programowanie
b75224ce-25f4-460d-9fbe-96a10d513ae4
koszotorobur

@rust-n-dust - najs

Ruścik dobry jest - mówię to jako Pythonista.

rust-n-dust

@koszotorobur Pythonik w kołchozie, a dla relaksu Rust xD

koszotorobur

@rust-n-dust - Tak samo - bo lubię szybkie rezultaty i szybkie pisanie kodu i Python jest już ugruntowany więc nie muszę nikogo do niczego przekonywać (a jak kod ma się wykonywać szybko to sobie modulik w Cythonie wymodzę... lub Ruście jak ma być bardzo szybko ).

Zaloguj się aby komentować

#adventofcode
Dzisiaj zadanie zrobiłem chyba w najgorszy możliwy sposób, ale jak ktoś napisał wcześniej "oni tego nie sprawdzają".
Chyba jutro to opiszę, to będziecie mogli mnie wyśmiać, ale na razie bez spoilerów.
Passpy

@BilboBagosz no moj kod tez nie moge patrzec xd trzeba odkomentowywac czesci w zaleznosci od inputu

BilboBagosz

@Passpy odnośnie kodu to nie mam żadnych oczekiwań, ale sam algorytm jest słaby.

Zaloguj się aby komentować

#adventofcode 9/25

Adwent z rana jak wiadomo co.

Dzisiaj strasznie dużo tekstu i na pierwszy rzut oka dość trudne zadanie, ale ostatecznie całość logiki zmieściła się w około 10 linijkach dla znalezienia cząstkowych różnic i kolejnych 10 dla ostatecznych sum obu części.

Bardzo przyjemny dzień. Ale muszę przyznać że zaczyna pojawiać się stres na zasadzie "czy to już dzisiaj okaże się za trudne" Poprzedni rok zakończyłem na 32 gwiazdkach. Osobista poprzeczka jest dość wysoko
94fd7f82-7cd6-4c86-a11d-c45c1645d75e
Wesprzyj autora

Zaloguj się aby komentować

Dzisiaj sprytna matematyka W zeszłym roku było podobne zadanie z tego co kojarzę. BTW. Czy na hejto jest coś takiego jak <spoiler></spoiler> na wypoku?

#adventofcode
rust-n-dust

"Sprytna matematyka" i już wiem, że się brute force'm nie doczekam xD.

W zeszłym roku zdaje się dzień 11 - z małpami wymagał tej samej (małpiej ) sztuczki.

A brak <spoiler></spoiler> to skandal!

marmot

Po przeczytaniu tego posta przed zobaczeniem treści myślałem, że ta sztuczka będzie trudniejsza :D. Ale fakt, uniknąłem dzięki niej przynajmniej z biliona iteracji

Flaaj

W sumie z treści zadania nie wynika, ze można użyć sprytnej matematyki. Akurat tak zostały inputy dobrane, że można (node'y konczące sie na A i Z miały te same child node'y, czasem tylko zamienione lewy z prawym, w innym wypadku nie byloby to mozliwe)

Zaloguj się aby komentować

Następna