Advent 2025 Day 2 Part 2
This commit is contained in:
parent
151a0ca82f
commit
99cde16ca6
2 changed files with 19 additions and 7 deletions
|
|
@ -14,14 +14,26 @@ pub fn solve(input: &str) {
|
||||||
|
|
||||||
for range in ranges {
|
for range in ranges {
|
||||||
for idx in range.start..range.end {
|
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..] {
|
if pattern == id {
|
||||||
// println!("invalid found: {as_str}");
|
sum_of_invalids += idx;
|
||||||
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}");
|
||||||
}
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
use paste::paste;
|
use paste::paste;
|
||||||
mod utility;
|
mod utility;
|
||||||
|
|
||||||
solve_day!{1}
|
solve_day!{2}
|
||||||
// test_day!{1}
|
// test_day!{2}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue