day06: incomplete
This commit is contained in:
parent
e955977bab
commit
4f90390833
@ -1,6 +1,6 @@
|
|||||||
use std::{collections::HashMap, error::Error, fs};
|
use std::{collections::HashMap, error::Error, fs};
|
||||||
|
|
||||||
/// Solves the problem for day 04.
|
/// Solves the problem for day 05.
|
||||||
///
|
///
|
||||||
/// # Errors
|
/// # Errors
|
||||||
///
|
///
|
||||||
@ -69,12 +69,6 @@ fn order_updates(updates: &[i32], rules: &HashMap<i32, Vec<i32>>) -> Vec<i32> {
|
|||||||
for (key, values) in rules {
|
for (key, values) in rules {
|
||||||
if a == key && values.contains(b) {
|
if a == key && values.contains(b) {
|
||||||
return std::cmp::Ordering::Less;
|
return std::cmp::Ordering::Less;
|
||||||
// } else if b == key && values.contains(a) {
|
|
||||||
// return std::cmp::Ordering::Greater;
|
|
||||||
// } else if a < b {
|
|
||||||
// return std::cmp::Ordering::Less;
|
|
||||||
// } else if a > b {
|
|
||||||
// return std::cmp::Ordering::Greater;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::cmp::Ordering::Equal
|
std::cmp::Ordering::Equal
|
||||||
@ -142,22 +136,18 @@ mod tests {
|
|||||||
|
|
||||||
let want = vec![75, 29, 13];
|
let want = vec![75, 29, 13];
|
||||||
let got = order_updates(&updates[2], &rules);
|
let got = order_updates(&updates[2], &rules);
|
||||||
dbg!(&got, &updates[2]);
|
|
||||||
assert_eq!(got, want);
|
assert_eq!(got, want);
|
||||||
|
|
||||||
let want = vec![97, 75, 47, 61, 53];
|
let want = vec![97, 75, 47, 61, 53];
|
||||||
let got = order_updates(&updates[3], &rules);
|
let got = order_updates(&updates[3], &rules);
|
||||||
dbg!(&got, &updates[3]);
|
|
||||||
assert_eq!(got, want);
|
assert_eq!(got, want);
|
||||||
|
|
||||||
let want = vec![61, 29, 13];
|
let want = vec![61, 29, 13];
|
||||||
let got = order_updates(&updates[4], &rules);
|
let got = order_updates(&updates[4], &rules);
|
||||||
dbg!(&got, &updates[4]);
|
|
||||||
assert_eq!(got, want);
|
assert_eq!(got, want);
|
||||||
|
|
||||||
let want = vec![97, 75, 47, 29, 13];
|
let want = vec![97, 75, 47, 29, 13];
|
||||||
let got = order_updates(&updates[5], &rules);
|
let got = order_updates(&updates[5], &rules);
|
||||||
dbg!(&got, &want, &updates[5]);
|
|
||||||
assert_eq!(got, want);
|
assert_eq!(got, want);
|
||||||
|
|
||||||
let want = 61;
|
let want = 61;
|
||||||
|
86
src/day06/guard.rs
Normal file
86
src/day06/guard.rs
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||||
|
pub struct Guard {
|
||||||
|
x: usize,
|
||||||
|
y: usize,
|
||||||
|
direction: Direction,
|
||||||
|
visited: HashSet<(usize, usize)>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Guard {
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn new(x: usize, y: usize, direction: Direction) -> Self {
|
||||||
|
let mut visited = HashSet::new();
|
||||||
|
visited.insert((x, y));
|
||||||
|
Self {
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
direction,
|
||||||
|
visited,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub const fn direction(&self) -> &Direction {
|
||||||
|
&self.direction
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub const fn start(&self) -> (usize, usize) {
|
||||||
|
(self.x, self.y)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::cast_possible_truncation, clippy::cast_possible_wrap)]
|
||||||
|
pub fn visited(&self) -> i32 {
|
||||||
|
self.visited.len() as i32
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub const fn next_move(&self) -> (usize, usize) {
|
||||||
|
match self.direction {
|
||||||
|
Direction::Up => (self.x - 1, self.y),
|
||||||
|
Direction::Down => (self.x + 1, self.y),
|
||||||
|
Direction::Left => (self.x, self.y - 1),
|
||||||
|
Direction::Right => (self.x, self.y + 1),
|
||||||
|
Direction::Unknown => (self.x, self.y),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn move_guard(&mut self, direction: &Direction) {
|
||||||
|
match direction {
|
||||||
|
Direction::Up => self.x -= 1,
|
||||||
|
Direction::Down => self.x += 1,
|
||||||
|
Direction::Left => self.y -= 1,
|
||||||
|
Direction::Right => self.y += 1,
|
||||||
|
Direction::Unknown => {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.direction = direction.clone();
|
||||||
|
self.visited.insert((self.x, self.y));
|
||||||
|
println!("Moved to: x: {} | y: {}", self.x, self.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq, Clone)]
|
||||||
|
pub enum Direction {
|
||||||
|
Up,
|
||||||
|
Down,
|
||||||
|
Left,
|
||||||
|
Right,
|
||||||
|
Unknown,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<char> for Direction {
|
||||||
|
fn from(c: char) -> Self {
|
||||||
|
match c {
|
||||||
|
'^' => Self::Up,
|
||||||
|
'v' => Self::Down,
|
||||||
|
'<' => Self::Left,
|
||||||
|
'>' => Self::Right,
|
||||||
|
_ => Self::Unknown,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
130
src/day06/input.txt
Normal file
130
src/day06/input.txt
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
................#......#...........#...........................#......#...........#........................................#......
|
||||||
|
.......................................................................................#........#............#.............#.....#
|
||||||
|
#.......................#...#..........#...........#........#.......................#............#................................
|
||||||
|
.............#...............................................#........#................................#....#......#..............
|
||||||
|
...#..................................#......................#....#....................................#.................#........
|
||||||
|
...................#.....#......#...........#............................#......................#.#........................#......
|
||||||
|
...........................#..#...........#.............................#.........#.##.............#..............................
|
||||||
|
.#.................#................#..........##.........##..............#...................................................#...
|
||||||
|
...............................#......................#........#.......................#.........#...........#....................
|
||||||
|
...................................#................#.............................................................................
|
||||||
|
..#...............##.......#................#.#......#...........#................................................................
|
||||||
|
....#.#.....#..............#........##........................##...........................................#...............#......
|
||||||
|
.....................#..........#.................................#.....................................#.........................
|
||||||
|
..............#.........................................##......#.......................#..............#.................#..#.....
|
||||||
|
...........#...#..........................................................#.......#.............................#................#
|
||||||
|
................................#.#...............#...............................#..............##...............................
|
||||||
|
.........................................................#............#......................................#.................#..
|
||||||
|
......#.#....#.................................#....###..................#......#.........#....#..................................
|
||||||
|
..............#...................................#..........#............#.......#...............................................
|
||||||
|
..............#......#...............#.............................................#.............................................#
|
||||||
|
....#.#..............#................#......................................................................#....................
|
||||||
|
........................................................#...........#..#.#.....................#....#.....#........#...#.......#..
|
||||||
|
..............#.......#................#............................#..#.......#.........#...........#...#...#....#....#.....#....
|
||||||
|
...#...............................................................................................#..#..#..........#.............
|
||||||
|
.......#.........#..###..................................##...............##..#.......................#..........#...........#...#
|
||||||
|
.......#.....................#.............#...........#...............................................#.................#........
|
||||||
|
..........#............................#..............................#......#..#.........#...............................#.......
|
||||||
|
.............................#...............#............#..............................................................#........
|
||||||
|
...........#...................#......#......................#.......................#...............#......#.....................
|
||||||
|
..#..............................................#.........................#.............#...#.#..................................
|
||||||
|
................#.............................#....................................#.....#...................#..#.....#...........
|
||||||
|
#............................#...#........................#................#....#.............................................#...
|
||||||
|
...............#.............#........#...................................................................#.......#....#..#.......
|
||||||
|
...........#......#.....#........................#.#..........................................#............#......................
|
||||||
|
.#.....................................................#...............#.........................#................#...........#...
|
||||||
|
.........................................#.............#......#.#....................................................#.........#..
|
||||||
|
................................#...#......................................................#..........................#..........#
|
||||||
|
.#.........................#..............#.#.....................................................................................
|
||||||
|
.........#..........#.............##.........#..#.................#........................#.....#.##....................#........
|
||||||
|
...................................................................................#...........................................#..
|
||||||
|
................#..........................................#...#...#.................................................#.........#..
|
||||||
|
..............................................#..............#..................#......#...#....#..#..............................
|
||||||
|
......#......#.................#.............#..................#...............#.............#..................#...............#
|
||||||
|
.................................#.......#......#.......#.............................................................#........#..
|
||||||
|
..................#......#...................................#.................#.......#..........................................
|
||||||
|
....................#.........#.........................#..........#..........#..................#................................
|
||||||
|
..........#...........#...............#.#..................................................................................#......
|
||||||
|
..................#..#....................................................#..........#......#................................#....
|
||||||
|
............#.................................................................................................#........#..........
|
||||||
|
.........#...............................................#.........##...........................#.................................
|
||||||
|
...#.........#........................................................#....................................#......................
|
||||||
|
........#......................#......#............#........#...............#.......................#.............................
|
||||||
|
.......#..............................................................................................#....................#......
|
||||||
|
.#.#..........#.......#.............##......................#..........................................................#..........
|
||||||
|
............#.#...........#............................................................#..........................................
|
||||||
|
............#..........................................................................#....................#...............#.....
|
||||||
|
.......................#.....#...#........................................#.......#.........#.........................#...........
|
||||||
|
....................#..............#......#.......................................................................................
|
||||||
|
......................#....................................................................#...............#...#............#.....
|
||||||
|
........#..........#....................#...#........#......#..........................#....#..................#..#...............
|
||||||
|
................#...........................................................................................................#.....
|
||||||
|
.#...............#..........................................................................................#......#..#.#.........
|
||||||
|
..............#................#...............#.........#.........#................................#.#...........................
|
||||||
|
...#................#..............#........................#...#.......................................#.#.......................
|
||||||
|
#.........................................#..#....................................................................#...............
|
||||||
|
.............#...........#.......#.#.....................................................................#.....#..................
|
||||||
|
.............#..............................................................................#.....................................
|
||||||
|
........................#........#....#........#.#.............................................^..........#.......................
|
||||||
|
...............................#.......................................................#.............##.......#.......#...........
|
||||||
|
#.#..............#..........................................#.......#..........................................#..................
|
||||||
|
...##...............................#........#.............##..................................................#..................
|
||||||
|
..#..#.................................................................#............#...#...#.....................................
|
||||||
|
....................#.#...#............#.......#.............#.......#..............#.............................................
|
||||||
|
..#..#.........#.............................................................................#......................#...#.........
|
||||||
|
....................................................#.........................#..#...#.#.#......#...............................#.
|
||||||
|
......#.....#.....................................................................#..............................................#
|
||||||
|
....................#........#..........................................................#.......#........................#........
|
||||||
|
................#.........................#...........................#...........................................#..............#
|
||||||
|
..#.......#..................................................#..................................#.................................
|
||||||
|
..........#.....................#...#.#...........#....................................#..........................................
|
||||||
|
.....................................#...........................................................#..........#...................#.
|
||||||
|
....#............................#.........................................#.........................#............................
|
||||||
|
......#............#...........#......#.#..................................#......................................................
|
||||||
|
..................#.......#.....#......#.................................................................#................#.......
|
||||||
|
...........#.....#........................................................#.............#.........................................
|
||||||
|
.................................#...........................#........#.........#............#.............................#.....#
|
||||||
|
..#........................#.................................#....................................................................
|
||||||
|
......................................................................................................#........#.#...#............
|
||||||
|
#............................#..........#.#.....................#.............................................................#...
|
||||||
|
.......#.......#................#..........#..........................#........#....#...#........................................#
|
||||||
|
....#.....#..........................................................#.........................#....................#..#.......#..
|
||||||
|
.......#.............#.................................#...................................................................#......
|
||||||
|
...............#.......................................#.#...............................#.#..........#...........................
|
||||||
|
....#......#...#.#.........................#...............#...........#.......#........................................#..#......
|
||||||
|
...................#.........................................#.....................................................#..#.....#...#.
|
||||||
|
....#......#.#.............................#..........##........#......................#.#.......................#....#...........
|
||||||
|
........#.........................#........#.#..........................##..............#....#....................................
|
||||||
|
.............#.....#..........#.....#.......#..##...#.....................#..................................#....................
|
||||||
|
....#....#...........................#...........#....................#.....#.......#....#.........#.....#....#...................
|
||||||
|
............#...#....................#..........#.......#......#............#.........................#............##.............
|
||||||
|
.....................#.................................................................####.......................................
|
||||||
|
...#...........................................................................#......#..............#....#.......#...............
|
||||||
|
....#...#...#.....................#.............#..............................#...................#...........#..................
|
||||||
|
............................#...........#........#.............#..................................................................
|
||||||
|
...#.....#......#.....................#...........................................#...........#........#..........................
|
||||||
|
.................#...........................#................................................................#..........#........
|
||||||
|
.....................#........#...#...................................................................................#......#....
|
||||||
|
.#...............................#...#....#.................#...#......#..........................................................
|
||||||
|
....................#..........#.........................................#....................#.........#.........................
|
||||||
|
.......#.............#............#................#..........#.#.#.....................#............#.....................#......
|
||||||
|
......................#.........................#.................#...........................#................#..................
|
||||||
|
...#....#..........................#.#..##.................#..#..........#..............................................#.........
|
||||||
|
...........#.........................................................................................#.............#..............
|
||||||
|
..............#.................##...........#..#.............................................#..............................#....
|
||||||
|
...............................................##.......#..#.....#........#...#.............#.....................#...............
|
||||||
|
........#...................#...........#...............................#............................................#........#...
|
||||||
|
...................................#.....#......................#...#.........##..#...................#.#.........................
|
||||||
|
............#...........##............#.......................#.....#.......#...................#.................................
|
||||||
|
..#..#..............................#.......#.........#.....................................#.............#..#.................#..
|
||||||
|
..................#..................#..........................##..................#...#.......#.........#..................#....
|
||||||
|
.........#.........#..............................................#...........................................................#...
|
||||||
|
......................#...........#..................................#............................#......#.....#..................
|
||||||
|
.....#....#......#..................#.....#..............#.............................................#.....#....................
|
||||||
|
..............##...........#........................................................................#........#.#..................
|
||||||
|
..........#...............................##.......#............#.#.........#.....................................#....#..........
|
||||||
|
.................................#..............#.............................#........................................#..........
|
||||||
|
....................#.................#..........#..............#.......................#...................................#.....
|
||||||
|
............#..............................#.............................#......#......#......................#...#...............
|
||||||
|
.#..........#...............#..................................................................#....#.............................
|
||||||
|
....#............................................#......#..................#.....#............#.........................#.........
|
109
src/day06/mod.rs
Normal file
109
src/day06/mod.rs
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
use std::{error::Error, fs};
|
||||||
|
|
||||||
|
use guard::Guard;
|
||||||
|
|
||||||
|
mod guard;
|
||||||
|
|
||||||
|
/// Solves the problem for day 06.
|
||||||
|
///
|
||||||
|
/// # Errors
|
||||||
|
///
|
||||||
|
/// This function will return an error if the file cannot be read or if the input is invalid.
|
||||||
|
#[allow(clippy::cast_possible_truncation, clippy::cast_possible_wrap)]
|
||||||
|
pub fn solve_day06(path: &str) -> Result<(i32, i32), Box<dyn Error>> {
|
||||||
|
let content = fs::read_to_string(path)?;
|
||||||
|
|
||||||
|
let (mut guard, map) = parse_input(&content);
|
||||||
|
let part_two = find_possible_obstacles(guard.start(), &map);
|
||||||
|
calc_guard_path(&mut guard, &map);
|
||||||
|
let part_one = guard.visited();
|
||||||
|
|
||||||
|
Ok((part_one, part_two))
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(
|
||||||
|
unused_mut,
|
||||||
|
clippy::cast_possible_truncation,
|
||||||
|
clippy::cast_possible_wrap
|
||||||
|
)]
|
||||||
|
fn find_possible_obstacles(_start: (usize, usize), _map: &[Vec<char>]) -> i32 {
|
||||||
|
let mut obstacles: Vec<(usize, usize)> = vec![];
|
||||||
|
|
||||||
|
obstacles.len() as i32
|
||||||
|
}
|
||||||
|
|
||||||
|
fn calc_guard_path(guard: &mut Guard, map: &[Vec<char>]) {
|
||||||
|
loop {
|
||||||
|
let (x, y) = guard.next_move();
|
||||||
|
if x >= map.len() || y >= map[0].len() {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// dbg!(x, y);
|
||||||
|
let c = map[x][y];
|
||||||
|
if c == '#' {
|
||||||
|
let new_direction = match guard.direction() {
|
||||||
|
guard::Direction::Up => &guard::Direction::Right,
|
||||||
|
guard::Direction::Down => &guard::Direction::Left,
|
||||||
|
guard::Direction::Left => &guard::Direction::Up,
|
||||||
|
guard::Direction::Right => &guard::Direction::Down,
|
||||||
|
guard::Direction::Unknown => &guard::Direction::Unknown,
|
||||||
|
};
|
||||||
|
guard.move_guard(new_direction);
|
||||||
|
} else {
|
||||||
|
let direction = guard.direction().clone();
|
||||||
|
guard.move_guard(&direction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn parse_input(input: &str) -> (guard::Guard, Vec<Vec<char>>) {
|
||||||
|
let mut guard = guard::Guard::new(0, 0, guard::Direction::Unknown);
|
||||||
|
let map = input
|
||||||
|
.split('\n')
|
||||||
|
.enumerate()
|
||||||
|
.flat_map(|(i, r)| {
|
||||||
|
if r.contains('^') || r.contains('v') || r.contains('<') || r.contains('>') {
|
||||||
|
let () = r
|
||||||
|
.chars()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, c)| *c == '^' || *c == 'v' || *c == '<' || *c == '>')
|
||||||
|
.map(|(j, c)| {
|
||||||
|
let d = guard::Direction::from(c);
|
||||||
|
guard = guard::Guard::new(i, j, d);
|
||||||
|
})
|
||||||
|
.collect::<()>();
|
||||||
|
}
|
||||||
|
vec![r.chars().collect()]
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
(guard, map)
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use guard::Guard;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_solve_day06() {
|
||||||
|
let input = "....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#........
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#^..";
|
||||||
|
|
||||||
|
let (mut guard, map) = parse_input(input);
|
||||||
|
assert_eq!(guard, Guard::new(9, 7, guard::Direction::Up));
|
||||||
|
|
||||||
|
calc_guard_path(&mut guard, &map);
|
||||||
|
let want = 7;
|
||||||
|
let got = guard.visited();
|
||||||
|
assert_eq!(got, want);
|
||||||
|
}
|
||||||
|
}
|
@ -3,3 +3,4 @@ pub mod day02;
|
|||||||
pub mod day03;
|
pub mod day03;
|
||||||
pub mod day04;
|
pub mod day04;
|
||||||
pub mod day05;
|
pub mod day05;
|
||||||
|
pub mod day06;
|
||||||
|
30
src/main.rs
30
src/main.rs
@ -1,6 +1,6 @@
|
|||||||
use adventofcode_24::{
|
use adventofcode_24::{
|
||||||
day01::solve_day01, day02::solve_day02, day03::solve_day03, day04::solve_day04,
|
day01::solve_day01, day02::solve_day02, day03::solve_day03, day04::solve_day04,
|
||||||
day05::solve_day05,
|
day05::solve_day05, day06::solve_day06,
|
||||||
};
|
};
|
||||||
use clap::{Arg, Command};
|
use clap::{Arg, Command};
|
||||||
|
|
||||||
@ -34,11 +34,16 @@ fn main() {
|
|||||||
.short('5')
|
.short('5')
|
||||||
.help("Path to Day 05 Input file"),
|
.help("Path to Day 05 Input file"),
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::new("day06")
|
||||||
|
.short('6')
|
||||||
|
.help("Path to Day 06 Input file"),
|
||||||
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
if let Some(file) = matches.get_one::<String>("day01") {
|
if let Some(file) = matches.get_one::<String>("day01") {
|
||||||
match solve_day01(file) {
|
match solve_day01(file) {
|
||||||
Ok((d, s)) => println!("Result of Day 01:\nDistance: {d}\nScore: {s}"),
|
Ok((d, s)) => println!("Result of Day 01:\nPart one: {d}\nPart two: {s}"),
|
||||||
Err(e) => eprintln!("{e}"),
|
Err(e) => eprintln!("{e}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -46,9 +51,7 @@ fn main() {
|
|||||||
if let Some(file) = matches.get_one::<String>("day02") {
|
if let Some(file) = matches.get_one::<String>("day02") {
|
||||||
match solve_day02(file) {
|
match solve_day02(file) {
|
||||||
Ok((r1, r2)) => {
|
Ok((r1, r2)) => {
|
||||||
println!(
|
println!("Result of Day 02:\nPart one: {r1}\nPart two: {r2}");
|
||||||
"Result of Day 02:\nSafe Reports: {r1}\nSafe Reports with tolerance: {r2}"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("{e}"),
|
Err(e) => eprintln!("{e}"),
|
||||||
}
|
}
|
||||||
@ -57,9 +60,7 @@ fn main() {
|
|||||||
if let Some(file) = matches.get_one::<String>("day03") {
|
if let Some(file) = matches.get_one::<String>("day03") {
|
||||||
match solve_day03(file) {
|
match solve_day03(file) {
|
||||||
Ok((r1, r2)) => {
|
Ok((r1, r2)) => {
|
||||||
println!(
|
println!("Result of Day 03:\nPart one: {r1}\nPart two: {r2}");
|
||||||
"Result of Day 03:\nSum of uncorrupted memory multiplications: {r1}\nSum of uncorrupted and enabled memory multiplications: {r2}"
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("{e}"),
|
Err(e) => eprintln!("{e}"),
|
||||||
}
|
}
|
||||||
@ -68,7 +69,7 @@ fn main() {
|
|||||||
if let Some(file) = matches.get_one::<String>("day04") {
|
if let Some(file) = matches.get_one::<String>("day04") {
|
||||||
match solve_day04(file) {
|
match solve_day04(file) {
|
||||||
Ok((r1, r2)) => {
|
Ok((r1, r2)) => {
|
||||||
println!("Result of Day 04:\nXMAS count: {r1}\nX-MAS count: {r2}");
|
println!("Result of Day 04:\nPart one: {r1}\nPart two: {r2}");
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("{e}"),
|
Err(e) => eprintln!("{e}"),
|
||||||
}
|
}
|
||||||
@ -77,7 +78,16 @@ fn main() {
|
|||||||
if let Some(file) = matches.get_one::<String>("day05") {
|
if let Some(file) = matches.get_one::<String>("day05") {
|
||||||
match solve_day05(file) {
|
match solve_day05(file) {
|
||||||
Ok((r1, r2)) => {
|
Ok((r1, r2)) => {
|
||||||
println!("Result of Day 05:\nOrdered middle page count: {r1}\nPart two: {r2}");
|
println!("Result of Day 05:\nPart one: {r1}\nPart two: {r2}");
|
||||||
|
}
|
||||||
|
Err(e) => eprintln!("{e}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(file) = matches.get_one::<String>("day06") {
|
||||||
|
match solve_day06(file) {
|
||||||
|
Ok((r1, r2)) => {
|
||||||
|
println!("Result of Day 05:\nPart one: {r1}\nPart two: {r2}");
|
||||||
}
|
}
|
||||||
Err(e) => eprintln!("{e}"),
|
Err(e) => eprintln!("{e}"),
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user