From 226ac1149b700131c3c6b4d349421bc570fc9404 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 8 Dec 2019 10:26:20 +0100 Subject: [PATCH] day08 clean up with itertools' chunks --- src/tasks/day08.rs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/tasks/day08.rs b/src/tasks/day08.rs index be68b84..763fd73 100644 --- a/src/tasks/day08.rs +++ b/src/tasks/day08.rs @@ -3,15 +3,14 @@ use itertools::Itertools; #[allow(dead_code)] pub fn run() { let size = 25 * 6; - let raw: Vec = std::fs::read_to_string("input/day08.txt") + let images: Vec> = std::fs::read_to_string("input/day08.txt") .unwrap() .chars() .map(|c| c.to_digit(10).unwrap() as u8) + .chunks(size) + .into_iter() + .map(|chunk| chunk.collect()) .collect(); - let mut images = Vec::>::new(); - for chunk in raw.chunks(size) { - images.push(chunk.iter().map(|it| *it).collect()); - } task1(&images); task2(&images); } @@ -31,16 +30,15 @@ fn task2(images: &Vec>) { let result: Vec = (0..n_pixels) .map(|pix| images.iter().find(|layer| layer[pix] != 2).unwrap()[pix]) .collect(); - for row in result.chunks(25) { + for row in result.iter().chunks(25).into_iter() { println!( "{}", - row.iter() - .map(|it| if *it == 0 { - format!(" ") - } else { - format!("{}", it) - }) - .join("") + row.map(|it| if *it == 0 { + format!(" ") + } else { + format!("{}", it) + }) + .join("") ); } }