From 99cde16ca61aeca11930cfed4c65a58d38fca5cb Mon Sep 17 00:00:00 2001 From: Jos van Goor Date: Sat, 6 Dec 2025 15:31:49 +0100 Subject: [PATCH] Advent 2025 Day 2 Part 2 --- advent_of_code_2025/src/day2/part2.rs | 22 +++++++++++++++++----- advent_of_code_2025/src/main.rs | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/advent_of_code_2025/src/day2/part2.rs b/advent_of_code_2025/src/day2/part2.rs index 804656e..5d9fa25 100644 --- a/advent_of_code_2025/src/day2/part2.rs +++ b/advent_of_code_2025/src/day2/part2.rs @@ -14,14 +14,26 @@ pub fn solve(input: &str) { for range in ranges { for idx in range.start..range.end { - let as_str = format!("{idx}"); + let id = format!("{idx}"); + let pattern_max_len = id.len() / 2; + // println!("id: {id}, len: {}, pattern_max_len: {pattern_max_len}", id.len()); + + for pattern_len in 1..=pattern_max_len { + if id.len() % pattern_len != 0 { + continue; + } + + let repeats = id.len() / pattern_len; + let pattern = id[..pattern_len].repeat(repeats); - if as_str.len() % 2 == 0 && as_str[..as_str.len() / 2] == as_str[as_str.len() / 2..] { - // println!("invalid found: {as_str}"); - sum_of_invalids += idx; + if pattern == id { + sum_of_invalids += idx; + // println!("invalid pattern found: {id} (pattern: {})", &pattern[..pattern_len]); + break + } } } } - println!("Part 1: {sum_of_invalids}"); + println!("Part 2: {sum_of_invalids}"); } \ No newline at end of file diff --git a/advent_of_code_2025/src/main.rs b/advent_of_code_2025/src/main.rs index 3c394c4..6f6e5c7 100644 --- a/advent_of_code_2025/src/main.rs +++ b/advent_of_code_2025/src/main.rs @@ -1,5 +1,5 @@ use paste::paste; mod utility; -solve_day!{1} -// test_day!{1} +solve_day!{2} +// test_day!{2}