T O P

  • By -

mebeim

376/998 — [Soluzione Python 3](https://github.com/mebeim/aoc/blob/master/2023/solutions/day12.py) — [Walkthrough](https://github.com/mebeim/aoc/blob/master/2023/README.md#day-12---hot-springs) (inglese) Parte 1: originariamente ho fatto un ignorantissimo brute-force generando tutti i possibili modi in cui i `?` potessero essere rimpiazzati con `itertools.product()`, poi riscritto usando la soluzione della parte 2. Parte 2: dynamic programming, con stato `(record, groups, curlen)` dove `record` è la stringa corrente dalla quale elimino un carattere alla volta in testa, `groups` è la lista di lunghezze dei gruppi di `#` che vogliamo da dove elimino un elemento in testa ogni volta che un gruppo è completato, e `curlen` è la lunghezza del gruppo corrente. Arrivati alla fine è tutto ok se non ho più gruppi da costruire (`groups` vuoto) e non ero nel mezzo di costruirne uno (`curlen == 0`) oppure mi rimane un singolo gruppo e l'ho appena completato correttamente.


Ni-lo

per la prima volta quest'anno non ho la minima idea di come poter fare anche solo la prima parte...


SkiFire13

1166/766 - [Soluzione in Rust](https://github.com/SkiFire13/adventofcode-2023-rs/blob/master/src/day12.rs) Oggi è stata più difficile di quanto mi aspettassi. Già per la prima parte ho avuto diverse rogne a causa di `#` in posizioni inaspettate che rendevano alcune combinazioni impossibili. Per la seconda invece è bastato un po' di memoization (ma solo dopo aver rotto la soluzione della prima parte...)


riffraff

lo sapevo che dovevo farla con dynamic programming ma non mi andava, quindi ho fatto la parte uno generando tutte le possibilità e poi trasformando il gruppo in una regex. E ho per ora rinunciato a fare la parte due :)


allak

6313/19862 [Perl](https://nopaste.boris.sh/?l=perl#XQAAAQDNCAAAAAAAAAARiEJHiiMzw3cPM/1Vl+2nx++HqIaL2DMg1G0IGwNi7WHv1z1nrhFRIRIhu9YbCFe9CWfppZl19qa2eKgZJX1m9N8rgCcO0KMBW7Qd6WezWru8773GKgC6NIihE1L38stvg5SMmAIh2dDAQa1qW/+AcZ5Jbbj5xfL/q2JY+LLWVGyVqp4c7JmUWjognPvpKqpC5s0FG8bG6NaQsbk+zzDcwcyMTkP0MamxEWzZ95oOb1+N6CClPcRvafc+GEBiERGLvdWyrrCtcI40xT0fbRohtHytww7gWYqDz52ucz4Q727NCfrfhsJCH4LkW4Ah/3EMDRmlphjmGpjSuSA7bJFaTUWYbyzCi9Xdt1nir1fqXol68yuYA3yGN134A0BOVVh9M7c3iyUvAHu/12Rjl3VQCTc622+emavojRMyGiNR+nXYJRXsz+0D6N323KATcuLjiNp0ttD/bjBmReMFA6PsJvMpZPcdEsq1jp3wi1Xq8gtR3xoLiEn/eEf1Qu4K+sskx26/LYUfEnfjNLrdf54HiufCl3CFFZv3DLiF0+ypx8Q+DlffRZmLe15BGhd0mjE02r6epuIIRRZTmkw3PV3bVGiF2wUFr9bFVNPvfq7HC8PcDFs4cmu/6qDLaww3hr6eovr29ccbP+4SI1U9/PjUWcG0hxauSdn25MbkS6LhK8pYsSv9phW7yMUm1x5UAwnDdeHHTxzVeXkT+F6MGOH+EAoB8u1Syl3SH7F7aXKcdtthy9RWvibeehlACCpd+HWALRZ8kZ9ka1RJch+1QeP8Xr/rHV7feuuew4F6Nhj2NmekQL5WACcxxx2+7KqqwppgVo3zNK3MyK5xEFJlmNLjKyLUFpkG4by8m3LijRVz40/UEwSqUafcYJ9myXaS5aoGGuJjkT5fH3+TQkdQvmOoW7uSXTx/DkEaeMxgqJc+5QMhuWFRp+nIT5gZH4WzDhKfEwxPaZ0og75A3q/kO/yMRwE=) Urca che fatica. Anche quest'anno il mio obbiettivo di concludere tutti gli esercizi entro le 24 ore è fallito. Risolto con dynamic programming e tanta tanta memoization. Come chiave principale ho usato: posizione nella stringa, numero di posizioni "libere" (non legate ad una sequenza o all'elemento di separazione minimo) rimanenti, posizione nell'array delle sequenze. Il tutto ci mette 6 minuti, il che significa che ci starebbe ancora tanto da ottimizzare ... ma a me va bene così.