From 7d36ddd8fee12a79a185ebf1ea139af0d766ee1b Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sat, 2 Dec 2017 12:48:17 -0800 Subject: [PATCH] [2017][rust][2.0] --- 2017/rust/src/day_02.rs | 19 +++++++++++++++++++ 2017/rust/src/main.rs | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 2017/rust/src/day_02.rs diff --git a/2017/rust/src/day_02.rs b/2017/rust/src/day_02.rs new file mode 100644 index 0000000..2eafa08 --- /dev/null +++ b/2017/rust/src/day_02.rs @@ -0,0 +1,19 @@ +use failure::*; + +pub fn solve(input: &str) -> Result { + Ok( + input + .trim() + .split("\n") + .map(|row| { + let row: Vec<_> = row.split("\t") + .map(|x| x.parse::().unwrap()) + .collect(); + let min = row.iter().min().unwrap(); + let max = row.iter().max().unwrap(); + max - min + }) + .sum::() + .to_string(), + ) +} diff --git a/2017/rust/src/main.rs b/2017/rust/src/main.rs index 2f98976..1dc42c1 100644 --- a/2017/rust/src/main.rs +++ b/2017/rust/src/main.rs @@ -5,6 +5,7 @@ use std::io::{self, Read}; use failure::Error; mod day_01; +mod day_02; fn main() { if let Err(e) = run() { @@ -16,7 +17,7 @@ fn run() -> Result<(), Error> { let mut input = String::new(); io::stdin().read_to_string(&mut input)?; - let solution = day_01::solve(&input)?; + let solution = day_02::solve(&input)?; println!("{}", solution); Ok(())