From 83a6196b20e5e3d5402f57b16a69368c24e4555f Mon Sep 17 00:00:00 2001 From: Anson Biggs Date: Fri, 17 Dec 2021 15:15:21 -0700 Subject: [PATCH] beginning of days 4 and 5 --- day4/input.txt | 19 +++++++++++++++++++ day4/rust/Cargo.toml | 8 ++++++++ day4/rust/src/main.rs | 16 ++++++++++++++++ day5/input.txt | 10 ++++++++++ day5/rust/Cargo.toml | 9 +++++++++ day5/rust/src/main.rs | 34 ++++++++++++++++++++++++++++++++++ debug.log | 2 ++ 7 files changed, 98 insertions(+) create mode 100644 day4/input.txt create mode 100644 day4/rust/Cargo.toml create mode 100644 day4/rust/src/main.rs create mode 100644 day5/input.txt create mode 100644 day5/rust/Cargo.toml create mode 100644 day5/rust/src/main.rs create mode 100644 debug.log diff --git a/day4/input.txt b/day4/input.txt new file mode 100644 index 0000000..49d17bc --- /dev/null +++ b/day4/input.txt @@ -0,0 +1,19 @@ +7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1 + +22 13 17 11 0 + 8 2 23 4 24 +21 9 14 16 7 + 6 10 3 18 5 + 1 12 20 15 19 + + 3 15 0 2 22 + 9 18 13 17 5 +19 8 7 25 23 +20 11 10 24 4 +14 21 16 12 6 + +14 21 17 24 4 +10 16 15 9 19 +18 8 23 26 20 +22 11 13 6 5 + 2 0 12 3 7 \ No newline at end of file diff --git a/day4/rust/Cargo.toml b/day4/rust/Cargo.toml new file mode 100644 index 0000000..1ec6963 --- /dev/null +++ b/day4/rust/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day4/rust/src/main.rs b/day4/rust/src/main.rs new file mode 100644 index 0000000..9410ea0 --- /dev/null +++ b/day4/rust/src/main.rs @@ -0,0 +1,16 @@ +use std::fs; + +fn main() { + let input = fs::read_to_string("../input.txt").expect("Could not read file"); + + let numbers: Vec<&str> = input.split('\n').next().unwrap().split(',').collect(); + for i in numbers.iter() { + println!("{}", i); + } + + let boards: Vec<&str> = input.split("\n\n").collect(); + println!("{}", boards.len()); + for i in boards.iter() { + println!("{:?}", i); + } +} diff --git a/day5/input.txt b/day5/input.txt new file mode 100644 index 0000000..1d4e36d --- /dev/null +++ b/day5/input.txt @@ -0,0 +1,10 @@ +0,9 -> 5,9 +8,0 -> 0,8 +9,4 -> 3,4 +2,2 -> 2,1 +7,0 -> 7,4 +6,4 -> 2,0 +0,9 -> 2,9 +3,4 -> 1,4 +0,0 -> 8,8 +5,5 -> 8,2 \ No newline at end of file diff --git a/day5/rust/Cargo.toml b/day5/rust/Cargo.toml new file mode 100644 index 0000000..76e308a --- /dev/null +++ b/day5/rust/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rust" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +itertools = "0.10" diff --git a/day5/rust/src/main.rs b/day5/rust/src/main.rs new file mode 100644 index 0000000..9069041 --- /dev/null +++ b/day5/rust/src/main.rs @@ -0,0 +1,34 @@ +use itertools::Itertools; +use std::collections::HashMap; +use std::fs; + +fn main() { + let input = fs::read_to_string("../input.txt").expect("Could not read file"); + + let lines = input + .lines() + .filter_map(|l| { + l.split(" -> ") + .map(|s| s.split(',')) + .flatten() + .map(|i| i.parse::().unwrap()) + .collect_tuple() + }) + .collect::>(); + + let mut points = HashMap::new(); + + for (x1, y1, x2, y2) in lines { + let dx: i8 = x2 - x1; + let dy: i8 = y2 - y1; + for x in x1..x1 + dx { + for y in y1..y1 + dy { + *points.entry((x, y)).or_insert(0) += 1; + } + } + } + + for (key, value) in points.into_iter() { + println!("({}, {}), {}", key.0, key.1, value); + } +} diff --git a/debug.log b/debug.log new file mode 100644 index 0000000..bea6f90 --- /dev/null +++ b/debug.log @@ -0,0 +1,2 @@ +[1204/174854.538:ERROR:registration_protocol_win.cc(102)] CreateFile: The system cannot find the file specified. (0x2) +[1217/131743.085:ERROR:registration_protocol_win.cc(102)] CreateFile: The system cannot find the file specified. (0x2)