Retourner au contenu associé (journal : Advent of Code 2025)
Posté par steph1978 le 04 décembre 2025 à 09:44. En réponse au journal Advent of Code 2025. Évalué à 4.
Très bon jour.
Première partie en one shot, sans passer par l'exemple ; deuxième partie en 1 essai ; en moins de 10 minutes.
Je suis passé par des sets, très facile à manipuler en python et plutôt efficaces en perf.
Voici le code, un peu refactoré pour tenir en 6 lignes:
rolls0 = rolls = {(i,j) for i,line in enumerate(open(0)) for j,c in enumerate(line) if c == '@'} l = 999999999 while len(rolls)<l: l = len(rolls) rolls = {(x,y) for (x,y) in rolls if 3<sum(((x+dx,y+dy) in rolls) for (dx,dy) in [(0,-1),(1,0),(0,1),(-1,0),(1,1),(-1,-1),(1,-1),(-1,1)])} print(len(rolls0)-len(rolls))
Cela prend 16MB de RAM et 0.7s de CPU.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Jour 4
Posté par steph1978 . En réponse au journal Advent of Code 2025. Évalué à 4.
Très bon jour.
Première partie en one shot, sans passer par l'exemple ; deuxième partie en 1 essai ; en moins de 10 minutes.
Je suis passé par des sets, très facile à manipuler en python et plutôt efficaces en perf.
Voici le code, un peu refactoré pour tenir en 6 lignes:
Cela prend 16MB de RAM et 0.7s de CPU.