#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.
@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.
@BreathDeath: no trzeba zaczac myslec jaka jest najmniejsza ilosc danych ktora potrzebuje zeby rozwiazac ten problem, to czesto sie przydaje przy 2giej czesci
@n0c0Mpr3h3nD: jak radzisz się przygotować do tego? Ja umiem tylko brute force i na chłopaki rozum for loopami wszystko. PC grindowac czy poczytać jakieś how to crack coding interview?
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
@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.
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.
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
Nie jestem dumny, ale przynajmniej odhaczone ;d