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

#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ć
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • 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
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#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
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
Bałem się o drugą część zadania, że będę musiał implementować coś dodatkowo, a tu wystarczyło jedynie w moim rozwiązaniu dodać „* 999999” w jednym miejscu

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

@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
c.....e - Dopiero teraz wszedem na tag i zauważyłem ten komentarz. Taki @nad__czlowie...

źródło: Untitled

Pobierz
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • 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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 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 #s----------e #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
  • Odpowiedz