Wpis z mikrobloga

#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 distance :) No chyba co roku jest. Warto znac ze w pythonie majac List[List[Int]] mozemy zrobic petle dla kolumn poprzez
literacje po list(map(list,zip(*og_list))). Ponowna operacja zwraca oryginalna liste.
No i czesc 1 to albo liczymy brute forcem, czyli dodajemy sobie te dodatkowe kropki, albo sprytnie zauwazamy ze tak naprawde musimy tylko wiedziec jak sie zmienilo polozenie galaktyk. Wtedy w czesci 2. wystarczy sparametryzowac i sprawdzic dla 10 i 100, a potem policzyc dla miliona.
  • 6
@n0c0Mpr3h3nD: Ja niestety nie miałem czasu na 10, ale 11 zrobiłem. Standardowo jak dla mnie pierwsza część brute force, ale druga już prawilnie. Muszę więcej czasu spędzić na alalizę zadania, a nie robić najprostszą metodą od razu.
@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
@n0c0Mpr3h3nD: Też właśnie nadrobiłem cz. 2 z wczoraj - ale niestety musiałem zerknąć na reddit po podpowiedź. Poleciałem rozwiązaniem z rozszerzaniem pól z 1x1 na 3x3 żeby zrobić przestrzenie między rurami. Potem niezbyt wydajny BFS i prosta kalkulacja.

Nie jestem dumny, ale przynajmniej odhaczone ;d