diff --git a/15/src/main.rs b/15/src/main.rs index eb4a526..180463f 100644 --- a/15/src/main.rs +++ b/15/src/main.rs @@ -27,13 +27,12 @@ fn main() { // COMMON fn hash_string(s: &str) -> u64 { - let mut val = 0u64; - for c in s.bytes() { - val += c as u64; - val *= 17; - val %= 256; - } - val + s.bytes().fold(0u64, |mut accum, val| { + accum += val as u64; + accum *= 17; + accum %= 256; + accum + }) } // PROBLEM 1 solution @@ -80,8 +79,12 @@ impl LensBox { } } - fn total_lens_power(&self) -> u64{ - self.order.iter().enumerate().map(|(lens_idx, label)| (lens_idx+1) as u64 * self.lenses[label] as u64).sum() + fn total_lens_power(&self) -> u64 { + self.order + .iter() + .enumerate() + .map(|(lens_idx, label)| (lens_idx + 1) as u64 * self.lenses[label] as u64) + .sum() } } @@ -137,7 +140,11 @@ fn problem2(mut input: Lines) -> u64 { inst.execute(&mut boxes); } - boxes.iter().enumerate().map(|(box_idx, b)| (box_idx + 1) as u64 * b.total_lens_power()).sum() + boxes + .iter() + .enumerate() + .map(|(box_idx, b)| (box_idx + 1) as u64 * b.total_lens_power()) + .sum() } #[cfg(test)]