Compare commits

..

No commits in common. "e1cf0cf53f634bfccc12d40829ff4a08a80146f9" and "0e22e82652f216772dbe2d537499102cb1d7be1c" have entirely different histories.

4 changed files with 4 additions and 1056 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +0,0 @@
use std::io;
use std::vec::Vec;
use crate::utils;
struct Assignment {
min: u32,
max: u32,
}
pub fn execute() -> Result<(), io::Error> {
let mut subsets = 0;
let mut overlaps = 0;
for line in utils::read_lines("input/day04.txt")? {
let text = line?;
let inputs: Vec<_> = text.split(',').collect();
let ass1 = parse_assignment(inputs[0]);
let ass2 = parse_assignment(inputs[1]);
if (ass2.max >= ass1.max && ass2.min <= ass1.min) ||
(ass1.max >= ass2.max && ass1.min <= ass2.min) {
subsets += 1;
}
if (ass2.max >= ass1.min && ass2.min <= ass1.max) ||
(ass1.max >= ass2.min && ass1.min <= ass2.max) {
overlaps += 1;
}
}
utils::print_step(1, subsets);
utils::print_step(2, overlaps);
Ok(())
}
fn parse_assignment(input: &str) -> Assignment {
let values: Vec<_> = input.split('-').collect();
let Ok(min) = values[0].parse::<u32>() else {
panic!("Min value {} is non-numeric.", values[0])
};
let Ok(max) = values[1].parse::<u32>() else {
panic!("Max value {} is non-numeric.", values[1])
};
Assignment {
min: min,
max: max,
}
}

View File

@ -2,12 +2,12 @@ use std::env;
use std::io; use std::io;
mod utils; mod utils;
const LATEST: u8 = 4; const LATEST: u8 = 3;
mod day01; mod day01;
mod day02; mod day02;
mod day03; mod day03;
mod day04; // mod day04;
// mod day05; // mod day05;
// mod day06; // mod day06;
// mod day07; // mod day07;
@ -36,7 +36,7 @@ fn main() -> io::Result<()> {
1 => day01::execute(), 1 => day01::execute(),
2 => day02::execute(), 2 => day02::execute(),
3 => day03::execute(), 3 => day03::execute(),
4 => day04::execute(), // 4 => day04::execute(),
// 5 => day05::execute(), // 5 => day05::execute(),
// 6 => day06::execute(), // 6 => day06::execute(),
// 7 => day07::execute(), // 7 => day07::execute(),

View File

@ -3,7 +3,7 @@ use std::io;
use crate::utils; use crate::utils;
pub fn execute() -> Result<(), io::Error> { pub fn execute() -> Result<(), io::Error> {
for line in utils::read_lines("input/dayXX.txt")? { for line in utils::read_lines("input/day03.txt")? {
let text = line?; let text = line?;
} }