2022 day 23 parsing
This commit is contained in:
parent
abb34e8d23
commit
03c7d0a04c
|
@ -24,5 +24,6 @@ fn main() {
|
||||||
// solutions::day19::run();
|
// solutions::day19::run();
|
||||||
// solutions::day20::run();
|
// solutions::day20::run();
|
||||||
// solutions::day21::run();
|
// solutions::day21::run();
|
||||||
solutions::day22::run();
|
// solutions::day22::run();
|
||||||
|
solutions::day23::run();
|
||||||
}
|
}
|
||||||
|
|
61
2022/rust/src/solutions/day23.rs
Normal file
61
2022/rust/src/solutions/day23.rs
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
use std::collections::HashSet;
|
||||||
|
use crate::utils;
|
||||||
|
|
||||||
|
|
||||||
|
pub fn run() -> () {
|
||||||
|
let data = parse_data(&utils::read_lines(utils::Source::Day(23)));
|
||||||
|
|
||||||
|
println!("Day 23");
|
||||||
|
println!("Part 1: {}", solve1(&data));
|
||||||
|
println!("Part 2: {}", solve2(&data));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type Location = (isize, isize);
|
||||||
|
|
||||||
|
|
||||||
|
fn solve1(data: &HashSet<Location>) -> i32 {
|
||||||
|
println!("{:?}", data);
|
||||||
|
1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn solve2(data: &HashSet<Location>) -> i32 {
|
||||||
|
2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn parse_data<T: AsRef<str>>(data: &[T]) -> HashSet<Location> {
|
||||||
|
data.iter()
|
||||||
|
.enumerate()
|
||||||
|
.flat_map(|(row, line)| line.as_ref()
|
||||||
|
.char_indices()
|
||||||
|
.filter(|&(_, c)| c == '#')
|
||||||
|
.map(move |(col, _)| (row as isize, col as isize))
|
||||||
|
)
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
static DATA: &[&str] = &[
|
||||||
|
".....",
|
||||||
|
"..##.",
|
||||||
|
"..#..",
|
||||||
|
".....",
|
||||||
|
"..##.",
|
||||||
|
".....",
|
||||||
|
];
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part1() {
|
||||||
|
assert_eq!(1, solve1(&parse_data(DATA)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn part2() {
|
||||||
|
assert_eq!(2, solve2(&parse_data(DATA)));
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,3 +20,4 @@ pub mod day19;
|
||||||
pub mod day20;
|
pub mod day20;
|
||||||
pub mod day21;
|
pub mod day21;
|
||||||
pub mod day22;
|
pub mod day22;
|
||||||
|
pub mod day23;
|
||||||
|
|
Loading…
Reference in a new issue