Refactor grouping count into a trait.

This commit is contained in:
2018-12-06 16:19:52 +01:00
parent d53100e591
commit c44ebaa238
4 changed files with 54 additions and 27 deletions

View File

@@ -1,10 +1,10 @@
use std::collections::HashMap;
use std::collections::HashSet;
use std::io::BufRead;
use std::io::BufReader;
use std::io::Read;
use common::Solution;
use common::GroupingCount;
#[derive(Copy, Clone, Debug)]
struct Coordinate {
@@ -124,13 +124,9 @@ impl Solution for Day06 {
infinite.extend([grid[y][0], grid[y][self.xmax]].iter().filter_map(claim_filter));
}
let mut counts = HashMap::new();
for instance in grid.iter().flat_map(|x| x.iter())
let counts = grid.iter().flat_map(|x| x.iter())
.filter_map(claim_filter)
.filter(|x| !infinite.contains(x)) {
*counts.entry(instance).or_insert(0) += 1;
}
.filter(|x| !infinite.contains(x)).grouping_count();
format!("{}", counts.values().max().unwrap())
}