diff --git a/rust/src/day_02.rs b/rust/src/day_02.rs index c8f3824..bcacb32 100644 --- a/rust/src/day_02.rs +++ b/rust/src/day_02.rs @@ -1,7 +1,5 @@ pub fn solve(input: &str) -> i32 { - let presents = - input.split('\n').map(|line| Present::new(line)).collect::>(); - presents.iter().fold(0u32, |acc, present| acc + present.ribbon()) as i32 + input.lines().map(|line| Present::new(line).ribbon()).sum::() as i32 } struct Present { @@ -15,7 +13,7 @@ impl Present { fn new(input: &str) -> Self { let dimensions = input.split('x') .map(|d| d.parse::().unwrap()) - .collect::>(); + .collect::>(); Present { length: dimensions[0], width: dimensions[1], @@ -32,7 +30,7 @@ impl Present { } fn surface_area(&self) -> u32 { - self.side_areas().iter().fold(0, |acc, &area| acc + 2 * area) + self.side_areas().iter().map(|area| 2 * area).sum() } fn slack(&self) -> u32 {