Kaynağa Gözat

wine

master
Roderic Day 3 yıl önce
ebeveyn
işleme
e060d61ead
1 değiştirilmiş dosya ile 20 ekleme ve 0 silme
  1. +20
    -0
      y2021/p04.py

+ 20
- 0
y2021/p04.py Dosyayı Görüntüle

@@ -0,0 +1,20 @@
A, *B = text.split('\n\n')
calls = [int(n) for n in A.split(',')]
boards = [[[int(n) for n in ln.split()] for ln in b.splitlines()] for b in B]

win_scores = []
for n in calls:
pending = []
for board in boards:
board[:] = [[None if m == n else m for m in row] for row in board]
win_rows = any(all(n is None for n in row) for row in board)
win_cols = any(all(n is None for n in col) for col in zip(*board))
if win_cols or win_rows:
total = sum(sum(n for n in row if n is not None) for row in board)
win_scores.append(total * n)
else:
pending.append(board)
boards = pending

ans1 = win_scores[0]
ans2 = win_scores[-1]

Yükleniyor…
İptal
Kaydet