summaryrefslogtreecommitdiff
path: root/2024/03/rust/src/main.rs
diff options
context:
space:
mode:
authormhsn <mail@mhsn.net>2025-04-29 20:12:53 +0100
committermhsn <mail@mhsn.net>2025-04-29 20:12:53 +0100
commitc7c9a61b15e876b464bf06bf7bb06f8bfb396ad9 (patch)
tree5e4b0a09bd293bbcde14f245f1c27b1f1fa0b598 /2024/03/rust/src/main.rs
parent75419df5eb7ac81cbd8ac631ca71bbbdae18a10a (diff)
downloadaoc-c7c9a61b15e876b464bf06bf7bb06f8bfb396ad9.tar.gz
aoc-c7c9a61b15e876b464bf06bf7bb06f8bfb396ad9.zip
2024-03 rust p1
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(());
+}