day 3 solutions
This commit is contained in:
4 files changed
+362
No files matched your search
@@ -0,0 +1,323 @@
|
||||
.............#...#....#.....##.
|
||||
.#...##.........#.#.........#.#
|
||||
.....##......#.......#.........
|
||||
.......#...........#.#.........
|
||||
#...........#...#..#.#......#..
|
||||
.........##....#.#...#.........
|
||||
.....#.........#.#...........#.
|
||||
....#...............##....##...
|
||||
#.#.............#..#.......#.#.
|
||||
...#...........................
|
||||
......#..#....#.............#..
|
||||
........#......#.......#.......
|
||||
....#.....#..#.#...#.........#.
|
||||
..#.#.......#.##...#....#.....#
|
||||
...........#.........#..#......
|
||||
#...........#.#..#...#.#.#....#
|
||||
........#......................
|
||||
....#.#.....#....#.......#..#..
|
||||
.............................#.
|
||||
....##..........#.....##......#
|
||||
......#.....................#..
|
||||
..#.....##.......#.............
|
||||
....#.#..............#.#.......
|
||||
..#.#........#.....#..##.......
|
||||
.....#...##.........##....#.#..
|
||||
.#....#..#..#...........#......
|
||||
.............#.....##........#.
|
||||
..#....#............#.........#
|
||||
###..........#........#.......#
|
||||
#...#..#.#.#.........#..#......
|
||||
..#....#......#.............#..
|
||||
#...#........#..#...#.....#....
|
||||
.#..........#.#........#.......
|
||||
#.....#.........#..#......#....
|
||||
....#....##........#......#....
|
||||
.......#....#.....#..#..#.....#
|
||||
.........#...#.#...#.##........
|
||||
.##.##...........#..##..#......
|
||||
.#.##....#........#...#........
|
||||
.......##.........##.####.....#
|
||||
....#..##....#.................
|
||||
.#........#..........#.........
|
||||
##....##..........##........#..
|
||||
#......#...........#....#..#...
|
||||
.......#..#....##..##.....#....
|
||||
.........#.#.#...#.....#.......
|
||||
......#...#...#....#......#....
|
||||
##....#..........#....##....##.
|
||||
###.........#...#...#..........
|
||||
#.....##.#........#.......#....
|
||||
#...............#...##.#......#
|
||||
..#.....####.###......#......#.
|
||||
....#.......#..........#.......
|
||||
....##..............#.#.#......
|
||||
.......##..#.......#...........
|
||||
..#.......##....#.......###...#
|
||||
........#...#.......#.#...#....
|
||||
.........##....#..#....#.......
|
||||
............#.#.......#.#......
|
||||
.....#.....#...#....#.##.......
|
||||
.......#.........#.......#.....
|
||||
.#..#...#.....#............#.##
|
||||
.......#.#......##.............
|
||||
##.#......#.....#.#............
|
||||
.#....#.....#............#...#.
|
||||
.........#.......#.#...........
|
||||
#............#.##...#..#...#.#.
|
||||
......#....#.......#....#......
|
||||
..........#........#..#.#......
|
||||
#..##.......#.........#..#.....
|
||||
.........#.....##........#.#..#
|
||||
..#................#...........
|
||||
....#..#........##.........#..#
|
||||
###...#....##.#......##.......#
|
||||
.......#......##..#.......#....
|
||||
.......###...#...#..........##.
|
||||
................#.......#......
|
||||
.#......##.##........#.........
|
||||
....##.#.....##.......#........
|
||||
...........#...........#.....#.
|
||||
..#........#..#.#...#.#........
|
||||
#...............#...#.##.##.#.#
|
||||
................#.......#......
|
||||
.#..#......#........#.#........
|
||||
...##..#.......#.......#..#....
|
||||
.#.....#.#....##..#........#...
|
||||
........##......#..........#...
|
||||
.#.......#.......#...#..#......
|
||||
.#..##.....#....#............#.
|
||||
...#..........#....#........#..
|
||||
..#.#..#.......#.#.##..........
|
||||
#........###.....#.#.......#.##
|
||||
.....#....##.............#.#..#
|
||||
..##............#...##.........
|
||||
...#.........#...........#.....
|
||||
...#......#.#...#..###.........
|
||||
.............#...##............
|
||||
.....##..##.####.#..#......#.#.
|
||||
.#...#.....#.....#.#.....#.....
|
||||
.........#.......###.....#..##.
|
||||
.##.#..#..........#.##.#.#.....
|
||||
.#...#...#.#.##......#..#......
|
||||
.............#......#......#...
|
||||
#.....................#......#.
|
||||
...#.....#.....#....#........#.
|
||||
................##..#....#..#..
|
||||
#.###...#.....................#
|
||||
...#..#....#.......#.........#.
|
||||
...........#..#..#...........#.
|
||||
.......#..#......#....#.#......
|
||||
..........#......#..#....#.....
|
||||
.#.#.....#...#.#...#...#.#....#
|
||||
.....#.......#............#...#
|
||||
#.#....#......#......#........#
|
||||
.#.#..#.........##...#.........
|
||||
#..###..#......................
|
||||
..#.#..#.......................
|
||||
.##.....#...#......#..#........
|
||||
...#...........#...#.......##..
|
||||
..#...........#........#.......
|
||||
........#....#.....#.#.........
|
||||
..........#...........#.....#..
|
||||
......#...#...##.#.............
|
||||
.#...#...##....................
|
||||
............###.........#......
|
||||
.#.#...................#..#....
|
||||
....#.#...#.#........#.#.......
|
||||
....#...#...........#.......#.#
|
||||
...........#............#...##.
|
||||
.....####....#.#......#.#......
|
||||
.##.............#............#.
|
||||
......#.........#............##
|
||||
#.#....#...##....#.......#....#
|
||||
.....#.#....#..#..#...#..#.#..#
|
||||
.........................#.....
|
||||
......#.#....###.......#....#..
|
||||
.....................##.#...#.#
|
||||
..#.....#.#.#...#...#..........
|
||||
........#..##........#...#...#.
|
||||
..........#.#.##....#....##....
|
||||
.............#..#..............
|
||||
..#.##..#.......#...#..#..##..#
|
||||
..#..#....#.#..........#..#....
|
||||
..........#....#...#......#....
|
||||
.##...#.......................#
|
||||
.#.....#....#..........#.......
|
||||
...........#..#......##.....#..
|
||||
......###.#..##....#...#.##....
|
||||
.......#..#.#....#.............
|
||||
...#..#......##.........###.#..
|
||||
...........#............##...#.
|
||||
...#...#...........##.....#....
|
||||
..................#............
|
||||
.#.#.#...#..............#..##..
|
||||
#.#....#........#.........#.##.
|
||||
#.#.#.......#.....#..........#.
|
||||
...##.....##.#.....#...........
|
||||
.#....#..............##...##..#
|
||||
........##.....................
|
||||
#..#..#.....###.............#..
|
||||
.......#...........#...........
|
||||
.........#.....................
|
||||
.......#...#...#.....##........
|
||||
......#.........#........#.....
|
||||
...#....##..#.####.#.......#.#.
|
||||
.....#..#......#........#.##..#
|
||||
.##....#......##......#...###..
|
||||
..###.#........##.#...#.......#
|
||||
............#......##....#.#...
|
||||
.....#....##..##............##.
|
||||
......##....#.#...#....#.#..#.#
|
||||
.......#.........#.#.....#.#...
|
||||
.......#.#....#................
|
||||
.##...###..#.....#............#
|
||||
#.#......#.#..#..#.#...#..#..#.
|
||||
..#.#.#.....#............#...##
|
||||
.##....###.........#..#........
|
||||
.#..#.#..#.#....#.........##.#.
|
||||
....#..#...##.##........#......
|
||||
........#.#....##....#....#....
|
||||
.......#..#..#.#..............#
|
||||
#....#....#.....#....#.........
|
||||
.#.###...#....#.......#........
|
||||
.........#.#....##....#...#....
|
||||
....#.............#.....##.##..
|
||||
.....#.....#...##..#.#.##...##.
|
||||
.........#..#................##
|
||||
...##..##......#.....#........#
|
||||
.#....#.....#.#......#..###....
|
||||
#.....#..#.....................
|
||||
....#.#...#.#.................#
|
||||
.....##..................#.....
|
||||
#....##...#.##..###...#........
|
||||
##.#.........#.......#....#....
|
||||
.#.#.............##..#.##......
|
||||
...#.#..............#......#...
|
||||
.............#.........#.....#.
|
||||
#.......#........#......#.....#
|
||||
.....#..............#.##.#.....
|
||||
#......##...................#..
|
||||
##.#.....#..........#........#.
|
||||
#...........##...........#.....
|
||||
.#...#.....#..#..##....#.......
|
||||
.....#.........#....##.#.......
|
||||
#........#......#.............#
|
||||
.#..................####.#.....
|
||||
#...#......#....##...#.#..#..#.
|
||||
............#.#............#...
|
||||
............#........#.#..###..
|
||||
.#..#..#..#.#.#.....#.#........
|
||||
#.....#..#.#...#..#..#........#
|
||||
#................#....#..#.....
|
||||
....#..#..#.#......#.#..#.....#
|
||||
.#..#.......#...##.#.#.....#..#
|
||||
#.....................#.......#
|
||||
.............#.......#...#.....
|
||||
....#......#.........###.##....
|
||||
....#..#.......#.#........#....
|
||||
....#...#....#.#....#..........
|
||||
...#..#......#.............#...
|
||||
.......###.#.........#....#.#..
|
||||
..#.....##.....................
|
||||
.#.#...........#..##....#......
|
||||
..........##.#....#.#..........
|
||||
...........#.#..#.#..#.#.......
|
||||
..........#..#...#.....##......
|
||||
.....#.........#...#.#..#......
|
||||
#.#................#..........#
|
||||
...#.....##.#..#...#.##.......#
|
||||
.....##...........#............
|
||||
.....#...#...#...#.#.....#.....
|
||||
...........##..................
|
||||
.........#................#....
|
||||
......#.....#.#...#.......#....
|
||||
...#...#........#...#...#.#.#..
|
||||
...............##..#....##...#.
|
||||
...#.#...........##.......##..#
|
||||
...........#............#......
|
||||
.#....#.#.......##.#.#.#.......
|
||||
.....#.#..#.#.#................
|
||||
.#............#...#.#..........
|
||||
.....#.......#.#.......#.....#.
|
||||
#....#...........#...#....##...
|
||||
..#...#..##.....#....#..#......
|
||||
#.#.........#..#.#..#.#......#.
|
||||
................#......##......
|
||||
#........#..............#....#.
|
||||
........#..#.#........#..#..#..
|
||||
#..........#......#............
|
||||
..##.......#..#.......#....#...
|
||||
.#........#..#..#.#.......##...
|
||||
................#..............
|
||||
#.................#...........#
|
||||
##..#...................#....##
|
||||
#..#....#.....#.#..#.#.#......#
|
||||
#................#.#.#...#.....
|
||||
.............#..#...#..##...#.#
|
||||
#..................#...........
|
||||
..............#..#.....##.....#
|
||||
..#...............#.#..........
|
||||
.....#......#....#..#...#......
|
||||
.#......#...##.....###.....#...
|
||||
...##...##.##....#.#.#..#......
|
||||
....#.#.......#..##....#.##....
|
||||
...#.........#.#.....#...#...##
|
||||
.##.#.........##..#.##..#......
|
||||
.#...#......#......#.........#.
|
||||
.............#.................
|
||||
..........#..............#.....
|
||||
##...........#...#...###....#..
|
||||
....#...............#..........
|
||||
.......####.....#......#.......
|
||||
........#..........#..#........
|
||||
..#.......#..#.................
|
||||
......#.#..##...##....#........
|
||||
.##...#........#...#....#...#..
|
||||
.......................#.......
|
||||
.........##..#..#...#....##...#
|
||||
..#..#...#.....#.........#..#..
|
||||
.......#....#.........#...#..#.
|
||||
.............#.................
|
||||
.....##..#.....###....##.#.....
|
||||
....#.#..#..#.#.....##....#..#.
|
||||
......#..#..............#.##..#
|
||||
..#..#......#.#.........#..#...
|
||||
..........#.#..#....#.....#....
|
||||
.....................#.........
|
||||
...#.....#.......##..#.#.......
|
||||
.....#...#..........###....#.#.
|
||||
......#.....##............#...#
|
||||
.......#..........#.#..#...#..#
|
||||
#...#..#...........#..##..#....
|
||||
.#......#.......##.....#..#....
|
||||
...#..#....#.......##......#...
|
||||
........#.......##...#.......#.
|
||||
.....#........#................
|
||||
......#........#....#..........
|
||||
...#....#....###.........#.#...
|
||||
##..............#......#..#.#..
|
||||
.........##....#........#..#.#.
|
||||
.......#.##.#........#........#
|
||||
.....###..#..#...........#....#
|
||||
.......#....##.......#.#...#...
|
||||
#..............#.#....#..#...#.
|
||||
#..#....#..#.#............#..#.
|
||||
.#...##.#..................#...
|
||||
...#...............##.........#
|
||||
###..............#.#..#.#.#....
|
||||
.#......#.#.....##.......#.....
|
||||
...#.................#.#.......
|
||||
.#...#....#...#..#......#...#..
|
||||
...##....#........#.#.#..#.....
|
||||
..#.....#........#....#.#......
|
||||
...........#.#...#.............
|
||||
......#.....#.....#.........#..
|
||||
.#.##.###...#.##.......#.......
|
||||
.............#....#.......#....
|
||||
..............#...........#....
|
||||
.............#..#.#.....#....#.
|
||||
.......#........##...##..##....
|
||||
..##...#............#..#......#
|
||||
.............#...##.....#......
|
||||
.#...##..##.#.........#.##...#.
|
||||
@@ -0,0 +1,2 @@
|
||||
167
|
||||
736527114
|
||||
@@ -0,0 +1,35 @@
|
||||
// ==== day 3
|
||||
|
||||
use crate::utils;
|
||||
use anyhow::Result;
|
||||
|
||||
fn count_trees(data: &str, right: usize, down: usize) -> Result<usize> {
|
||||
Ok(data
|
||||
.lines()
|
||||
.step_by(down)
|
||||
.enumerate()
|
||||
.filter(|(i, s)| {
|
||||
s.chars()
|
||||
.nth((i * right) % s.len())
|
||||
.expect("string index error")
|
||||
== '#'
|
||||
})
|
||||
.count())
|
||||
}
|
||||
|
||||
pub fn run() -> Result<(usize, usize)> {
|
||||
let data = utils::read_file("data/input-03.txt")?;
|
||||
let answers = utils::read_i64s("data/output-03.txt")?;
|
||||
|
||||
let p1 = count_trees(&data, 3, 1)?;
|
||||
assert_eq!(p1, answers[0] as usize);
|
||||
|
||||
let p2 = count_trees(&data, 1, 1)?
|
||||
* p1
|
||||
* count_trees(&data, 5, 1)?
|
||||
* count_trees(&data, 7, 1)?
|
||||
* count_trees(&data, 1, 2)?;
|
||||
assert_eq!(p2, answers[1] as usize);
|
||||
|
||||
Ok((p1, p2))
|
||||
}
|
||||
@@ -2,6 +2,7 @@ use anyhow::Result;
|
||||
|
||||
mod day01;
|
||||
mod day02;
|
||||
mod day03;
|
||||
mod utils;
|
||||
|
||||
// TODO
|
||||
@@ -14,5 +15,6 @@ mod utils;
|
||||
fn main() -> Result<()> {
|
||||
println!("Day 01: {:?}", day01::run()?);
|
||||
println!("Day 02: {:?}", day02::run()?);
|
||||
println!("Day 03: {:?}", day03::run()?);
|
||||
Ok(())
|
||||
}
|
||||
Reference in new issue
Block a user