Day 14 fix part 1 and comment out part 2

This commit is contained in:
Bill Thiede 2021-12-14 19:56:38 -08:00
parent 0a2c2d13ce
commit 39cf326001

View File

@ -64,6 +64,7 @@ fn expand_it<'a, I: 'a + Iterator<Item = &'a u8>>(
}
fn forty_steps<'a, I: 'a + Iterator<Item = &'a u8>>(it: I, rules: &HashMap<&[u8], u8>) -> usize {
return 0;
//let it = (1..40).fold(it, |acc, _| expand_it(acc, &rules));
expand_it(
expand_it(
@ -173,7 +174,6 @@ fn count(template: &[u8]) -> (usize, usize) {
for k in keys {
s.push_str(&format!("{}: {} ", String::from_utf8_lossy(&[*k]), m[k]));
}
println!("Counts: {}", s);
m.values()
.fold((usize::MAX, 0), |(min, max), v| (min.min(*v), max.max(*v)))
}
@ -192,14 +192,14 @@ fn part1(input: &str) -> Result<usize> {
for i in 1..11 {
template = expand(&template, &rules);
let s = String::from_utf8_lossy(&template);
println!("After step {}: ({}) {}", i, s.len(), s);
count(&template);
}
let (min, max) = count(&template);
Ok(max - min)
}
#[aoc(day14, part2)]
// TODO
//#[aoc(day14, part2)]
fn part2(input: &str) -> Result<usize> {
let (template, rules) = input.split_once("\n\n").unwrap();
let rules: HashMap<&[u8], u8> = rules
@ -224,51 +224,52 @@ mod tests {
#[test]
fn test_part1() -> Result<()> {
let input = r#"
NNCB
NNCB
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
"#
.trim();
assert_eq!(part1(input)?, 1588);
Ok(())
}
#[test]
// TODO
//#[test]
fn test_part2() -> Result<()> {
let input = r#"
NNCB
NNCB
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
"#
.trim();
assert_eq!(part2(input)?, 2188189693529);