From 2fbc98de3d2ec43599677a0130a1ecfb4a193c36 Mon Sep 17 00:00:00 2001 From: Joseph Montanaro Date: Tue, 7 Dec 2021 10:37:24 -0800 Subject: [PATCH] well that was easy --- 2021/src/day4.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/2021/src/day4.rs b/2021/src/day4.rs index debb702..313e034 100644 --- a/2021/src/day4.rs +++ b/2021/src/day4.rs @@ -191,8 +191,21 @@ fn part1(boards: &[Board]) -> eyre::Result { } +fn part2(boards: &[Board]) -> eyre::Result { + let winner = boards.iter() + .filter(|b| b.bingo_time.is_some()) + .max_by_key(|b| b.bingo_time.unwrap()); + + match winner { + Some(w) => Ok(*w), + None => Err(eyre!("Could not find a winning board")), + } +} + + pub fn run(data: &str) -> eyre::Result<(isize, isize)> { let boards = load(data)?; let winner = part1(&boards)?; - Ok((winner.score()?, 0)) + let loser = part2(&boards)?; + Ok((winner.score()?, loser.score()?)) }