diff --git a/src/advent_of_code/sat_07.rs b/src/advent_of_code/sat_07.rs index 2e839cc..2a09af6 100644 --- a/src/advent_of_code/sat_07.rs +++ b/src/advent_of_code/sat_07.rs @@ -29,7 +29,7 @@ pub fn is_equation_true(equation: &Calibration) -> bool { } pub fn generate_operation_variants(count: usize) -> Vec> { - let variants = vec![Operation::MUL, Operation::SUM]; + let variants = vec![Operation::MUL, Operation::SUM, Operation::COMB]; let variant_list: Vec> = generate_combinations(&variants, count); variant_list @@ -80,6 +80,11 @@ pub fn operate( Operation::MUL => { return first * second; } + Operation::COMB => { + return format!("{}{}", second, first) + .parse::() + .unwrap() + } } } diff --git a/src/advent_of_code/types.rs b/src/advent_of_code/types.rs index 3089f3e..79ae986 100644 --- a/src/advent_of_code/types.rs +++ b/src/advent_of_code/types.rs @@ -55,4 +55,5 @@ pub struct Calibration(pub CalibrationResult, pub CalibrationEquation); pub enum Operation { SUM, MUL, + COMB, }