#python #naukaprogramowania #adventofcode

Przyglądałem się ostatnio różnym rozwiązaniom zagadek z advent of code na reddicie. Dla python wybijała się szczególnie jedna osoba 4HbQ.

Przy okazji analizowania jego kodów poleciłem gpt sporządzić notatki a skoro już mam to mogę się tym podzielić.
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n0c0Mpr3h3nD: układ równań z dwoma niewiadomymi to nawet się nie opłaca bawić w macierz, mnożysz oba równania tak aby można było odjąć jedno od drugiego i zostaje ci równanie z jedną niewiadomą
  • Odpowiedz
@conamirko: 9/9 (czy tam 18/18), ale przestałem opisywać na tagu bo nikt nie odpisał na ostatni wpis https://wykop.pl/wpis/79233675/adventofcode-naukaprogramowania-python-dzien-02-tr
@n0c0Mpr3h3nD +2
#adventofcode #naukaprogramowania #python
Dzień 02 - trochę zabawy z warunkami, ale nic przebojowego.
Poniżej dobry sposób na parsowanie danych wejsciowych
[list(map(int, line.split())) for line in input]
A w drugiej części można olać wydajność i po prostu sprawdzić każdy podzbiór
Warto zapoznać się z itertools.pairwise, bo wtedy
  • Odpowiedz
#programowanie #programista15k #programista25k #pracbaza #java #pracait #kryzysit #korposwiat

#adventofcode zwany również jako #adventofautism to super świetna zabawa, przy której programista pasjonat zamiast klepać nudne CRUDy może oddać się swojej pasji do klepania algorytmów i zapodać algorytm bellamana forda by rozwiązać adventowe zadanko!

A ...czekajcie... czy ja powiedziałem zabawa? Dobra zabawa? No bez przesady. Dla
nad__czlowiek - #programowanie #programista15k #programista25k #pracbaza #java #praca...

źródło: zabawa

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nad__czlowiek: Ja rok temu miałem problem z jakimś zadaniem i znalazłem jakiś stream na yt, gdzie koleś to rozwiązał. Gość napisał sobie specjalnie skrypty, które automatycznie mu pobierały input i po wykonaniu programu automatycznie wysyłały odpowiedzi na serwer, aby oszczędzić kilka sekund, aby na końcu być w topie czasowym
  • Odpowiedz
#adventofcode #naukaprogramowania #python
Dzień 02 - trochę zabawy z warunkami, ale nic przebojowego.
Poniżej dobry sposób na parsowanie danych wejsciowych
[list(map(int, line.split())) for line in input]
A w drugiej części można olać wydajność i po prostu sprawdzić każdy podzbiór
Warto zapoznać się z itertools.pairwise, bo wtedy mamy łatwe porównanie dwóch wartości:
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Bez sensu #adventofcode jeśli trzeba tylko wpisać odpowiedź. Była kiedyś polska strona z rywalizacjami, gdzie pisałeś kod w konkretnym języku, a automat sprawdzał zarówno poprawność jak i czas wykonania programu. #programowanie #programista15k

To było jeszcze w liceum. Zawsze przegrywałem, bo wysyłałem kod w PHP i program przekraczał mocno wyśrubowane limity czasowe. Natomiast koledzy z klasy pisali w C++ i im akceptowało. Dzisiaj czasem, pamięcią i złożonością
SendMeAnAngel - Bez sensu #adventofcode jeśli trzeba tylko wpisać odpowiedź. Była kie...

źródło: AdventOfCodeDay1

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SendMeAnAngel: bardzo dobrze to robią, bo można korzystać ze wszystkich narzędzi i po prostu dawać odpowiedź. Bardziej nastawione na rzeczywistość gdzie czasem chcemy naklepać szybki skrypt, który uruchomimy raz, nawet jak samo wykonanie skryptu zabierze więcej czasu (czy to przez złożoność, czy język/implementację), to liczy się jeszcze czas zakodowania
  • Odpowiedz
Mam zadanie bonusowe Advent of Code. Żaden renifer nie wykonał kopii forum PCLola. Elfy odkryły, że kopie są przechowywane przez wyszukiwarki. Na początek trzeba pobrać listę wszystkich wątków w poszczególnych kategoriach. Programista, co pisał ten kod, był pod wpływem, więc skrypt działa kijowo i nie znajduje wszystkich podstron. Może komuś uda się poprawić skrypt, aby dla każdej kategorii forum pobrać z Binga cache wszystkich numerów stron z listą tematów? Często wyszuiwarka zwraca
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n0c0Mpr3h3nD: a Ty jesteś wjebny w kredyt pod korek i jak tylko Cię wyjebia z roboty przy aktualnej koniunkturze pracy w finalandii to nic innego Ci nie zostanie jak pójście do psychiatry po leki na uspokojenie. Taki sukces w życiu osiągnąłeś
  • Odpowiedz
@BreathDeath: jest fajnie, pierwszy dzień i już wlatuje Counter (robię w Pythonie). Przydało się przypomnieć jak używać zip() żeby skrócić kod, i ostatecznie można zrobić pierwsze zadanko w jednej linijce, a drugie w dwóch
  • Odpowiedz
Dzisiaj dzień googlowania i przypominania sobie jak robić różne operacje w C++. Ale nie ma to jak szybki kompilowalny język i łączny runtime 0.15s :)

Samo zadanie to po prostu implementacja procesu, który opisali w treści. W part 2 pewnie da się zrobić jakieś optymalizacje, ale to zupełnie niepotrzebne. W zamian za rozwiązanie dostajemy nowatorski ruchomy element „ascii” artu xd

#adventofcode
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@WaveCreator: z 1-1.5h, ale jestem nie w formie i się nie spieszyłem. C++ to był mój pierwszy język i na co dzień używam Rusta, więc nie mam z C++ takich problemów jak ktoś przechodzący na niego z Pythona czy JS. C++ pod competitive programming jest znaacznie prostszy od tego wymaganego w poważnych projektach
  • Odpowiedz
Też macie poczucie, że dla dnia 15 opis części 2 był pisany typowo tak by zniechęcić miłośników ślepego przeklepywania zadań do ChatGPT itp.? ( ͡° ͜ʖ ͡°)
#adventofcode
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#naukaprogramowania #programowanie #programista15k #adventofcode #python
Dzien 15. Jak dla mnie moglby rownie dobrze byc dzien trzeci. Widac ze autor chcial pomeczyc ludzi problemem z trzymaniem kolejnosci i zawartosci w hashmapie, ale Python wchodzi w to jak w maslo ze swoim OrderedDict.
Czesc pierwsza w 20 linijek, druga w 40. Czasowo chyba mniej niz 15 minut, z czego wiekszosc na czytanie czesci drugiej
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n0c0Mpr3h3nD @ElMatadore: ja każdy box robiłem po prostu przez zwykłą (tablicową) listęmą XD szukanie i usuwanie elementów ma w niej badziewną liniową złożoność, ale dla danych z zadania w boxach jest zawsze maksymalnie z 5 elementów i taka lista może być nawet szybsza niż drzewiaste/hashowane sety
  • Odpowiedz
Dzisiejsze zadanie to żart, ale i tak musiałem wertować jego treść przez 15 min by dowiedzieć się na jakiej podstawie jest wybierane pudełko, do którego trzeba włożyć soczewkę. Można się było domyślić po nazwie „HASHMAP”, ale miałem zaćmienie mózgu

#adventofcode
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n0c0Mpr3h3nD: to był mój ostatni dzień w online edytorze Pythona. Po tym skonfigurowałem sobie g++ na laptopie z pracy i jestem gotowy na kolejne dni :)

Nie piszę ładnie w c++, to dla mnie po prostu młotek do competitive programming :P
  • Odpowiedz
#naukaprogramowania #programowanie #programista15k #adventofcode #python
Dzień 14. Klasyk - proces poruszania czegoś po planszy i sprawdzenie jaki będzie wynik po trylionowej rundzie.
Tym razem bardzo przydatne było obracanie planszy żeby zawsze liczyć tak jakby to były wiersze i kamyczki leciały na zachód.
Samo przesuwanie kamieni to string split na "#", policzyć ile jest "O" w danym odcinku, podmienić "O" na "." i
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@n0c0Mpr3h3nD: aż mi się przypomniał pierwszy projekcik na studiach. Mieliśmy napisać bieda-boulder-dasha

Dzisiaj part 2 liczyło mi strasznie długo (10s), ale nie chce mi się niczego optymalizować. Jutro chyba zrobię ostatni dzień w Pythonie i przełączam się na C++ - jak dotąd nie chciało mi się konfigurować środowiska i robiłem w Pythonie w online editorze xdd
  • Odpowiedz
Ale dzisiaj to mnie #adventofcode w------o. Męczyłem się nad day 13 kilka godzin, dopiero po czytaniu reddita i rozwiązań innych ludzi zczaiłem, że reflection musi być wtedy, gdy te odbicie przylega do jednego ze zbiorów granicznych (a w sumie to nawet tego nie jestem pewien, muszę iść spać). Nie ma tego w żaden sposób wyszczegółowione w zadaniu, w moim inpucie bez tego warunku co kilka patternów znajdą się takie symetryczne
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach