From d8dbdca4468c9ea81bc557c6afcce4fb8140552a Mon Sep 17 00:00:00 2001 From: Ray Slakinski Date: Tue, 1 Dec 2020 14:33:20 -0500 Subject: [PATCH] day 1 optimizations, day 2 setup --- 2020/day_1/src/main.rs | 40 +++++++++++++++++++++------------------- 2020/day_2/Cargo.toml | 9 +++++++++ 2020/day_2/src/main.rs | 3 +++ 3 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 2020/day_2/Cargo.toml create mode 100644 2020/day_2/src/main.rs diff --git a/2020/day_1/src/main.rs b/2020/day_1/src/main.rs index d1109f8..da68b49 100644 --- a/2020/day_1/src/main.rs +++ b/2020/day_1/src/main.rs @@ -1,33 +1,35 @@ -use std::io::Read; fn main() { - let mut file = std::fs::File::open("input1").unwrap(); - let mut contents = String::new(); - file.read_to_string(&mut contents).unwrap(); + // let mut file = std::fs::File::open("input1").unwrap(); + // let mut contents = String::new(); + // file.read_to_string(&mut contents).unwrap(); let mut v: Vec = Vec::new(); + let contents = std::fs::read_to_string("input1").unwrap(); for s in contents.lines() { v.push(s.parse::().unwrap()); } v.sort(); - let v2 = v.to_vec(); for n in v.iter() { - for n2 in v2.iter() { - let val = n + n2; - if val == 2020 { - print!("{} + {} = {}\n", n, n2, val); - print!("{} * {} = {}\n", n, n2, n * n2); - } + let k = 2020 - n; + if v.contains(&k) { + print!("{} + {} = {}\n", n, k, n + k); + print!("{} * {} = {}\n", n, k, n * k); + break; } } - let v3 = v.to_vec(); + + let mut found = false; for n in v.iter() { - for n2 in v2.iter() { - for n3 in v3.iter() { - let val = n + n2 + n3; - if val == 2020 { - print!("{} + {} + {} = {}\n", n, n2, n3, val); - print!("{} * {} * {} = {}\n", n, n2, n3, n * n2 * n3); - } + for n2 in v.iter() { + let k = 2020 - n - n2; + if v.contains(&n) && v.contains(n2) && v.contains(&k) { + print!("{} + {} + {} = {}\n", n, n2, k, n + n2 + k); + print!("{} * {} * {} = {}\n", n, n2, k, n * n2 * k); + found = true; + break; } } + if found { + break; + } } } diff --git a/2020/day_2/Cargo.toml b/2020/day_2/Cargo.toml new file mode 100644 index 0000000..2c2b156 --- /dev/null +++ b/2020/day_2/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "day_2" +version = "0.1.0" +authors = ["Ray Slakinski "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/2020/day_2/src/main.rs b/2020/day_2/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/2020/day_2/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}