prepare days

This commit is contained in:
JonOfUs 2023-12-15 17:11:47 +01:00
parent 5000ae7344
commit 595f4ba264
24 changed files with 253 additions and 27 deletions

0
res/16/example Normal file
View file

0
res/17/example Normal file
View file

0
res/18/example Normal file
View file

0
res/19/example Normal file
View file

0
res/20/example Normal file
View file

0
res/21/example Normal file
View file

0
res/22/example Normal file
View file

0
res/23/example Normal file
View file

0
res/24/example Normal file
View file

0
res/25/example Normal file
View file

View file

@ -1,6 +1,8 @@
use regex::Regex; use regex::Regex;
use std::fs; use std::fs;
use rayon::prelude::*;
pub fn solve() { pub fn solve() {
let path = "res/02/input"; let path = "res/02/input";
@ -13,7 +15,9 @@ pub fn solve() {
let result: usize = contents let result: usize = contents
.lines() .lines()
.map(|line| { .enumerate()
.par_bridge()
.map(|(i, line)| {
let re = Regex::new(r"(\d+) (\w+)").unwrap(); let re = Regex::new(r"(\d+) (\w+)").unwrap();
let mut col_max = [0, 0, 0]; let mut col_max = [0, 0, 0];
for cap in re.captures_iter(line) { for cap in re.captures_iter(line) {
@ -27,9 +31,8 @@ pub fn solve() {
_ => {} _ => {}
} }
} }
col_max (i, col_max)
}) })
.enumerate()
.filter(|(_, [r, g, b])| *r <= MAX_R && *g <= MAX_G && *b <= MAX_B) .filter(|(_, [r, g, b])| *r <= MAX_R && *g <= MAX_G && *b <= MAX_B)
.map(|(i, _)| i + 1) .map(|(i, _)| i + 1)
.sum(); .sum();
@ -37,7 +40,7 @@ pub fn solve() {
println!("Result 1: {}", result); println!("Result 1: {}", result);
let result: usize = contents let result: usize = contents
.lines() .par_lines()
.map(|line| { .map(|line| {
let re = Regex::new(r"(\d+) (\w+)").unwrap(); let re = Regex::new(r"(\d+) (\w+)").unwrap();
let mut col_max = [0, 0, 0]; let mut col_max = [0, 0, 0];

View file

@ -29,7 +29,7 @@ pub fn solve() {
println!("Result 1: {result}"); println!("Result 1: {result}");
let result: usize = contents let result: usize = contents
.lines() .par_lines()
.map(|line| { .map(|line| {
let (springs_str, nums_str) = line.split_once(" ").unwrap(); let (springs_str, nums_str) = line.split_once(" ").unwrap();
let nums_tmp: Vec<usize> = nums_str let nums_tmp: Vec<usize> = nums_str

View file

@ -42,9 +42,6 @@ pub fn solve() {
} }
} }
} }
dbg!(&boxes);
let result: usize = boxes let result: usize = boxes
.iter() .iter()
.map(|(k, v)| { .map(|(k, v)| {

18
src/days/d16.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/16/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d17.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/17/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d18.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/18/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d19.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/19/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d20.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/20/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d21.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/21/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d22.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/22/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d23.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/23/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d24.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/24/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

18
src/days/d25.rs Normal file
View file

@ -0,0 +1,18 @@
use std::fs;
pub fn solve() {
let path = "res/25/example";
let mut _contents = fs::read_to_string(path).expect("I/O error, wrong path?");
//let contents = BufReader::new(fs::File::open(path).expect("I/O error, wrong path?"));
let result: usize = 0;
println!("Result 1: {result}");
let result: usize = 0;
println!("Result 2: {result}");
}

View file

@ -9,73 +9,119 @@ fn main() {
//_all_days() //_all_days()
} }
#[allow(unreachable_code, unused)]
fn _all_days() { fn _all_days() {
let start = Instant::now(); let start = Instant::now();
let mut time = start.clone();
println!("\nDay 1"); println!("\nDay 1");
days::d01::solve(); days::d01::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 2"); println!("\nDay 2");
days::d02::solve(); days::d02::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 3"); println!("\nDay 3");
days::d03::solve(); days::d03::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 4"); println!("\nDay 4");
days::d04::solve(); days::d04::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 5"); println!("\nDay 5");
days::d05::solve(); days::d05::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 6"); println!("\nDay 6");
days::d06::solve(); days::d06::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 7"); println!("\nDay 7");
days::d07::solve(); days::d07::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 8"); println!("\nDay 8");
days::d08::solve(); days::d08::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 9"); println!("\nDay 9");
days::d09::solve(); days::d09::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 10"); println!("\nDay 10");
days::d10::solve(); days::d10::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 11"); println!("\nDay 11");
days::d11::solve(); days::d11::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 12"); println!("\nDay 12");
days::d12::solve(); days::d12::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 13"); println!("\nDay 13");
days::d13::solve(); days::d13::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 14"); println!("\nDay 14");
days::d14::solve(); days::d14::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 15"); println!("\nDay 15");
days::d15::solve(); days::d15::solve();
print_elapsed(&start); time = _print_elapsed(time);
println!("\nDay 16");
days::d16::solve();
time = _print_elapsed(time);
/*
println!("\nDay 17");
days::d17::solve();
time = _print_elapsed(time);
println!("\nDay 18");
days::d18::solve();
time = _print_elapsed(time);
println!("\nDay 19");
days::d19::solve();
time = _print_elapsed(time);
println!("\nDay 20");
days::d20::solve();
time = _print_elapsed(time);
println!("\nDay 21");
days::d21::solve();
time = _print_elapsed(time);
println!("\nDay 22");
days::d22::solve();
time = _print_elapsed(time);
println!("\nDay 23");
days::d23::solve();
time = _print_elapsed(time);
println!("\nDay 24");
days::d24::solve();
time = _print_elapsed(time);
println!("\nDay 25");
days::d25::solve();
_print_elapsed(time);*/
println!("\nTotal elapsed: {}ms", start.elapsed().as_millis())
} }
fn print_elapsed(start: &Instant) { fn _print_elapsed(time: Instant) -> Instant {
println!( println!(
" Elapsed: {}.{}ms", " Elapsed: {}.{}ms",
start.elapsed().as_millis(), time.elapsed().as_millis(),
start.elapsed().as_micros() % 1000 time.elapsed().as_micros() % 1000
) );
Instant::now()
} }