Second star.
This commit is contained in:
parent
4c1bf47827
commit
5ede082241
|
@ -46,7 +46,7 @@ fn part1(lines: &[String]) {
|
|||
.expect("Expected at least one duplicate item");
|
||||
|
||||
let priority = to_priority(outlier).unwrap();
|
||||
println!("{} ({})", outlier, priority);
|
||||
dbg!(outlier, priority);
|
||||
sum += priority;
|
||||
|
||||
left_set.clear();
|
||||
|
@ -56,9 +56,35 @@ fn part1(lines: &[String]) {
|
|||
println!("Sum: {}", sum);
|
||||
}
|
||||
|
||||
fn part2(_lines: &[String]) {}
|
||||
fn part2(lines: &[String]) {
|
||||
const GROUP_SIZE: usize = 3;
|
||||
let mut sets = Vec::with_capacity(GROUP_SIZE - 1);
|
||||
for _ in 0..GROUP_SIZE - 1 {
|
||||
sets.push(HashSet::<char>::new())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
let mut sum: u32 = 0;
|
||||
for chunk in lines.chunks(GROUP_SIZE) {
|
||||
let mut outlier: Option<char> = None;
|
||||
'outlier_search: for i in 0..GROUP_SIZE {
|
||||
if i != GROUP_SIZE - 1 {
|
||||
sets[i].clear();
|
||||
chunk[i].chars().collect_into(&mut sets[i]);
|
||||
} else {
|
||||
for c in chunk[i].chars() {
|
||||
if sets[0..GROUP_SIZE - 1].into_iter().all(|s| s.contains(&c)) {
|
||||
outlier = Some(c);
|
||||
break 'outlier_search;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let outlier = outlier.expect("Expect at least one outlier");
|
||||
let priority = to_priority(outlier).unwrap();
|
||||
dbg!(outlier, priority);
|
||||
sum += priority;
|
||||
}
|
||||
|
||||
println!("Sum: {}", sum);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue