diff --git a/day03/src/main.rs b/day03/src/main.rs index f74d3dc..e346eb0 100644 --- a/day03/src/main.rs +++ b/day03/src/main.rs @@ -34,6 +34,29 @@ fn main() { .collect(); part1(&data); + + part2_claude(binding); +} + +fn part2_claude(input: String) { + let result = input + .lines() + .map(parse_triple) + .tuples() + .flat_map(|((a0, a1, a2), (b0, b1, b2), (c0, c1, c2))| { + [(a0, b0, c0), (a1, b1, c1), (a2, b2, c2)] + }) + .filter(|(a, b, c)| a + b > *c && a + c > *b && b + c > *a) + .count(); + + println!("{result}"); +} + +fn parse_triple(line: &str) -> (usize, usize, usize) { + line.split_whitespace() + .map(|s| s.parse().unwrap()) + .next_tuple() + .unwrap() } fn part1(data: &[Vec]) {