https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Dzień dobry!

Mam na imię Kamila. Witam Cię serdecznie na stronie kamilachyla.com.

Znajdziesz tu garść moich notatek.

Piszę głównie o programowaniu (EN/PL): (Java, Python, Go, JavaScript), w wolnych chwilach bawię się sztuką generatywną (p5js) oraz piszę i ilustruję książeczki dla swoich dzieci.

Zapraszam!

Dzień 13 - chińskie twierdzenie o resztach

Zadanie Shuttle Search rozłożyło mnie na łopatki. Popełniłam dwa błędy: Najpierw długi czas rozwiązywałam całkiem inne zadanie (pozycję autobusu na liście wejściowej traktowałam jako różnicę czasu do poprzedniego zamiast to pierwszego autobusu). Wniosek na przyszłość: czytaj dokładnie treść zadania. Póżniej zauważyłam, że moje naiwne przesuwanie iteratorów działa tylko dla danych testowych - dla danych właściwych zwisa na długie minuty (dłużej nie czekałam...). Widocznie istnieje jakiś lepszy algorytm niż brute force... Wniosek na przyszłość: przejrzyj algorytmy przydatne w poprzednich latach.

Dzień 10 - sortowanie topologiczne

Co za zbieg okoliczności. Wczoraj przygotowałam wpis na temat sortowania topologicznego (zauważyłam nowy moduł w Pythonie 3.9), a dzisiejsze zadanie właśnie takego przesortowania wierzchołków wymagało. Przyznam się, że zrozumiałam to dopiero wtedy, gdy moje naiwne rozwiązanie, które sprawdziło się dla danych testowych, zupełnie zwisnęło na właściwych danych. Czekam, czekam, a tu nic. W moim grafie, reprezentowanym jako dict, z wierzchołkiem (nominalną wartością zasilania przejściówki) związana była lista tych wierzchołków/przejściówek, do których można dany wierzchołek wpiąć.

Advent of code

Kilka dni temu rozpoczął się Advent of code. W tym roku, podobnie jak w zeszłym, wzięłam na warsztat Pythona. Odkrywam ten język właściwie na nowo - po wielu latach (i wielu nowych wydaniach) zaszło w nim wiele zmian. Oto kilka perełek, które odkryłam w trakcie rozwiązywania tegorocznych zadań: