This commit is contained in:
sepia 2024-12-03 10:44:13 -06:00
parent 68f6a3946d
commit d84eede42f
5 changed files with 80 additions and 1 deletions

23
src/day3.rs Normal file
View file

@ -0,0 +1,23 @@
use std::fs;
use regex::Regex;
const READ_ALL: bool = false;
pub fn day3() {
let input_text = fs::read_to_string("res/puzzle_3.txt").unwrap();
let mut total: u64 = 0;
let mut enabled = true;
for statement in Regex::new(r"(?:mul\((?<a>\d{1,3}),(?<b>\d{1,3})\))|(?<do>do\(\))|(?<dont>don't\(\))").unwrap().captures_iter(&input_text) {
if statement.name("do").is_some() {
enabled = true;
} else if statement.name("dont").is_some() {
enabled = false;
} else if enabled || READ_ALL {
let numbers: Vec<u64> = vec![&statement["a"], &statement["b"]].iter().map(|s| s.parse::<u64>().unwrap()).collect();
total += numbers[0] * numbers[1];
}
}
println!("Total: {}", total);
}

View file

@ -1,6 +1,7 @@
mod day1;
mod day2;
mod day3;
fn main() {
day2::day2();
day3::day3();
}