mirror of
https://gitlab.com/MisterBiggs/aoc2021.git
synced 2025-06-16 06:56:48 +00:00
beginning of days 4 and 5
This commit is contained in:
parent
6aae31f295
commit
83a6196b20
19
day4/input.txt
Normal file
19
day4/input.txt
Normal 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
8
day4/rust/Cargo.toml
Normal 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
16
day4/rust/src/main.rs
Normal 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
10
day5/input.txt
Normal 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
9
day5/rust/Cargo.toml
Normal 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
34
day5/rust/src/main.rs
Normal 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);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user