1
0

day 3 part 1

This commit is contained in:
2024-12-03 06:07:59 +01:00
parent 283c49a7d8
commit 6b5aed016b
3 changed files with 62 additions and 4 deletions

View File

@@ -2,14 +2,26 @@ use std::fs::read_to_string;
pub fn day_main() {
let input = read_to_string("input/day03.txt").unwrap();
let input = input.trim();
println!("part1: {}", part1(&input));
println!("part2: {}", part2(&input));
}
type RiddleResult = usize;
type RiddleResult = i64;
fn part1(input: &str) -> RiddleResult {
0
let r = regex::Regex::new(r"mul\(\d{1,3},\d{1,3}\)").unwrap();
r.captures_iter(input)
.map(|c| {
let s = c.get(0).unwrap().as_str();
println!("{s}");
let x = s.strip_prefix("mul(").unwrap().strip_suffix(")").unwrap();
let (a, b) = x.split_once(',').unwrap();
let a: i64 = a.parse().unwrap();
let b: i64 = b.parse().unwrap();
a * b
})
.sum()
}
fn part2(_input: &str) -> RiddleResult {
@@ -20,12 +32,12 @@ fn part2(_input: &str) -> RiddleResult {
mod test {
use super::{part1, part2};
const TEST_INPUT: &str = r"
const TEST_INPUT: &str = r"xmul(2,4)%&mul[3,7]!@^do_not_mul(5,5)+mul(32,64]then(mul(11,8)mul(8,5))
";
#[test]
fn test1() {
assert_eq!(part1(TEST_INPUT), 0);
assert_eq!(part1(TEST_INPUT), 161);
}
#[test]