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
  • 1
@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
#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 z 3 razy.
Ciekawi mnie jak to wyglada jak ktos
@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
  • 0
@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 od razu "." na "O" z limitem na ile ich
@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 #!$%@?ł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 w kilku
#naukaprogramowania #programowanie #programista15k #adventofcode #python
Dzien 12+13. Nadrobione, znowu.
Zadanie 12. jak masz w pierwszej linijce "from itertools import permutation" to już przegrałeś. Trzeba rekursje i trzymać w pamięci jaka jest długość grupy znaków i jaka powinna być. Wtedy eliminujemy niepotrzebne rekursje i część druga powinna wejść minutę po skończeniu części pierwszej.
Zadanie 13. całkiem lekkie ale strasznie trudno mi było napisać jakie powinny być obszary do porównania. Rozpisalem to na 20
  • Odpowiedz
@ElMatadore: pierwszą bruteforcem, drugą ze łzami w oczach wcale ( ͡° ʖ̯ ͡°)

W pierwszej łatwo było zrobić sobie dla każdego wiersza listę wszystkich możliwych kombinacji spełniających warunki wejściowe (liczba grup # i liczba # w każdej z grup), a potem tylko policzyć ile tego jest. Minuta, może dwie mielenia.

W drugiej poddałem się z kombinowaniem bo i tak robiłem to w trakcie planowania kwartału w robocie
  • Odpowiedz
W 11 co się dzieje, gdy galaktyki się na tej samej linii, po prostu najkrótsza droga między tymi skrajnymi przechodzi przez środkową, czy trzeba jakoś to omijać? Raczej po prostu tak jakby tam nic nie było
#adventofcode
#naukaprogramowania #programowanie #programista15k #adventofcode #python
Dzien 10+11. Nadrobione.
Dzien 10. Czesc pierwsza to mozna bylo odruchowo wklepac BFS, albo na spokojnie przejsc caly rurociag i podzielic wynik. Czesc druga to znowu "albo znasz albo nie dasz rady", ale ja dalem rady nie znajac ani Shoelace formula ani Pick's theorem. Dla kazdego odcinka |PoprzedniaRura-ObecnaRura| policzylem wektor i znalazlem wszyskie punkty z prawej strony zanim napotkamy ponownie rure z naszego rurociagu.
Dzien 11. Manhattan
@Fury_Warrior: tu masz wszystko co jest potrzebne do zadań algorytmicznych na poziomie AoC czy rozmów o pracę (i nawet więcej) https://cses.fi/book/book.pdf

Ale w książce masz teorię. Trzeba jeszcze praktyki - robić zadanka. Jak nie możesz wymyślić to czytasz tipy/poczatek rozwiązania i próbujesz. Nadal nie potrafisz - czytasz więcej, nawet do pełnego rozwiązania. W każdym razie polecam zaimplementować nawet po zrozumieniu rozwiązania

Bo i to w sumie tyle w skrócie. Jak chcesz
  • Odpowiedz
@n0c0Mpr3h3nD: no własnie w cześci pierwszej już tak miałem bo czułem że w czesci drugiej bedzie jakaś duża liczba

@colliee ja za pierwszym razem wpisałem "* 10000000" i potem sie głowiłem 5 minut dlaczego nie działa
  • Odpowiedz
@ElMatadore Bo przekonwertowana mapa z inputu na wartości droga/nie-droga wygląda tak, że pierwsze 3 linie są w ogóle nie używane. Więc rozpoczynam sobie konwersję od 0.0.

A najpierw wszystko co jest nie drogą konwersuje na I, a potem, jeżeli I w przedziale -1 / 1 ma sąsiada, to zamieniam na O (to będzie się wykonywało do momentu, aż nie zostanie ogrodzone przez drogę)
  • Odpowiedz
Dopiero teraz wszedem na tag i zauważyłem ten komentarz. Taki @nad__czlowiek: siedzi w piątek wieczur o 19:27 na Wykopie i pisze smęty o tym jak ktoś inny nie ma życia xD Jak to możecie śmieć lubić algorytmikę i jak to na pewno robicie w celu doszkalania się do pracy

Typowy wykopek jest typowy

#adventofcode
colliee - Dopiero teraz wszedem na tag i zauważyłem ten komentarz. Taki @nad__czlowie...

źródło: Untitled

Pobierz
@WaveCreator: a wiem, też z automatu zrobiłem BFS, a to wystarczyło raz przelecieć przez rurociąg i podzielić długość przez dwa...
Druga część prawie skończyłem ale czas wolny na ten dzień się skończył szybciej niestety. Nie wiem czy to zadziała, ale wydaje mi się że jak się przejdzie w kierunku wskazówek zegara, to każdy punkt z prawej strony do kierunku obecnej rury będzie wewnątrz tej pętli ( każdy dopóki nie napotkamy kolejnej
  • Odpowiedz
#naukaprogramowania #programowanie #programista15k #adventofcode #python
Dzien 8+9. Najpierw zwykle parsowanie do dicta, potem math.lcm, bo Python (òóˇ) 9. to trochę spanikowałem i zacząłem szukać właściwości trójkąta Pascala, czy może coś z tym związane jest (tl;dr trochę tak, ale tylko jak przedostatni szereg składa się z jedynek). Po godzinie zacząłem szukać innych właściwości liczb z przykładów i szczęśliwie zauważyłem że ostatnia liczba z pierwszego szeregu jest sumą
  • Odpowiedz
  • 5
@colliee: Rok temu kilka zadań spowodowało, że postanowiłem dowiedzieć się czym jest ten dynamic programming więc znalazłem jakiś kurs na jutubie - od tego czasu minął rok, a ja mam nadal ten film otwarty jako tab w przeglądarce i nadal nie obejrzałem nawet minuty xD

Więc przyłączam się do Twojej wishlisty - może mnie to zmotywuje ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@WaveCreator: ale taguj #adventofautyzm

#asperger ##!$%@? #przegryw #tfwnogf

Normalne osoby nie jarają się adventem tylko klepią kod 8-16 i zamykają lapka, weekend spędzają z rodziną, dziewczyną, żoną, dziećmi, znajomymi, góry, morze, sporty, pasje, hobby.

Scrum Master spędza teraz weekend w SPA z cycatą blondynką a wy cały tydzień zasuwacie z kodem w pracy, po pracy adventy i w weekendy nauka nowych technologii za darmo xD Idealni niewolnicy
  • Odpowiedz