day 11: todo
This commit is contained in:
parent
d3c1c39a68
commit
c60d0bf3f6
@ -8,7 +8,7 @@ pub mod d7;
|
||||
pub mod d8;
|
||||
pub mod d9;
|
||||
pub mod d10;
|
||||
// pub mod d11;
|
||||
pub mod d11;
|
||||
// pub mod d12;
|
||||
// pub mod d13;
|
||||
// pub mod d14;
|
||||
|
||||
71
src/days/d11.rs
Normal file
71
src/days/d11.rs
Normal file
@ -0,0 +1,71 @@
|
||||
use crate::prelude::*;
|
||||
|
||||
pub type I = Vec<Vec<char>>;
|
||||
pub type O = i64;
|
||||
|
||||
fn _parse (data: &str) -> I {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
fn _solve (data: &I) -> O {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
fn _silver (data: &I) -> O {
|
||||
|
||||
|
||||
Default::default()
|
||||
}
|
||||
|
||||
fn _gold (data: &I) -> O {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
type St = [Vec<char>; 4];
|
||||
|
||||
fn is_final_state (state: &St) -> bool {
|
||||
state[1..].iter().all(|e| e.is_empty())
|
||||
}
|
||||
|
||||
fn is_valid_state (state: &St) -> bool {
|
||||
state.iter().all(|level| level.len() < 2 || level.iter().all(|e| e.is_lowercase()) || {
|
||||
let mut chips = level.iter().filter(|e| e.is_uppercase());
|
||||
while let Some(chip) = chips.next() {
|
||||
if level.iter().find(|&v| chip.to_ascii_lowercase() == *v).is_none() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
true
|
||||
})
|
||||
}
|
||||
|
||||
fn state_discriminant (state: &St) -> [(usize, usize); 4] {
|
||||
state.iter().map(|s| (
|
||||
s.iter().filter(|e| e.is_lowercase()).count(),
|
||||
s.iter().filter(|e| e.is_uppercase()).count()
|
||||
)).collect_vec().try_into().unwrap()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
fn read () -> I {
|
||||
vec![vec!['a', 'b', 'c', 'd', 'e', 'A', 'B', 'C'], vec!['D', 'E'], vec![], vec![]]
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn silver () {
|
||||
let data = read();
|
||||
let ans = _silver(&data);
|
||||
|
||||
assert_eq!(ans, 1)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn gold () {
|
||||
let data = read();
|
||||
let ans = _gold(&data);
|
||||
|
||||
assert_eq!(ans, 1)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user