1
0
mirror of https://gitlab.com/MisterBiggs/aoc2021.git synced 2025-06-15 22:46:51 +00:00

beginning of days 4 and 5

This commit is contained in:
Anson Biggs 2021-12-17 15:15:21 -07:00
parent 6aae31f295
commit 83a6196b20
7 changed files with 98 additions and 0 deletions

19
day4/input.txt Normal file
View File

@ -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

8
day4/rust/Cargo.toml Normal file
View File

@ -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]

16
day4/rust/src/main.rs Normal file
View File

@ -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);
}
}

10
day5/input.txt Normal file
View File

@ -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

9
day5/rust/Cargo.toml Normal file
View File

@ -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"

34
day5/rust/src/main.rs Normal file
View File

@ -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::<i8>().unwrap())
.collect_tuple()
})
.collect::<Vec<(i8, i8, i8, i8)>>();
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);
}
}

2
debug.log Normal file
View File

@ -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)