summaryrefslogtreecommitdiff
path: root/2024/03/rust/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to '2024/03/rust/src/main.rs')
-rw-r--r--2024/03/rust/src/main.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/2024/03/rust/src/main.rs b/2024/03/rust/src/main.rs
new file mode 100644
index 0000000..6ea29b3
--- /dev/null
+++ b/2024/03/rust/src/main.rs
@@ -0,0 +1,20 @@
+use regex::Regex;
+use std::io::{self, Read};
+
+fn main() -> io::Result<()> {
+ let mut program = String::new();
+ io::stdin().read_to_string(&mut program)?;
+
+ let re = Regex::new(r"mul\((\d{1,3}),(\d{1,3})\)").unwrap();
+
+ let silver: u64 = re
+ .captures_iter(&program)
+ .map(|c| c.extract())
+ .map(|(_, [x, y])| x.parse::<u64>().unwrap() * y.parse::<u64>().unwrap())
+ .sum();
+ let gold: u64 = 0;
+ println!("silver: {silver}");
+ println!("gold: {gold}");
+
+ return Ok(());
+}