Retourner au contenu associé (entrée de forum : Advent of Code 2023, jour 11)
Posté par Yth (Mastodon) le 11 décembre 2023 à 18:15. En réponse au message Advent of Code 2023, jour 11. Évalué à 2.
Ouais. En écrivant le commentaire, j'ai pensé à mieux, et voilà :
def run(starmap, expansion): stars = [(x, y) for y, line in enumerate(starmap) for x, _ in enumerate(line) if _ == "#"] Xs = sorted({x for x, y in stars}) Ys = sorted({y for x, y in stars}) stars = [ ( sum(1 if _ in Xs else expansion for _ in range(x + 1)), sum(1 if _ in Ys else expansion for _ in range(y + 1)), ) for x, y in stars ] return sum( abs(x2 - x1) + abs(y2 - y1) for x1, y1 in stars for x2, y2 in stars )//2
On calcule directement les coordonnées en parcourant les lignes/colonnes vides ou pleines. Parfois on a beau essayer de simplifier notre vision du problème, on reste bloqué sur un truc, et on voit pas qu'il y a plus simple.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Simple et qui rappelle des souvenirs.
Posté par Yth (Mastodon) . En réponse au message Advent of Code 2023, jour 11. Évalué à 2.
Ouais.
En écrivant le commentaire, j'ai pensé à mieux, et voilà :
On calcule directement les coordonnées en parcourant les lignes/colonnes vides ou pleines.
Parfois on a beau essayer de simplifier notre vision du problème, on reste bloqué sur un truc, et on voit pas qu'il y a plus simple.