add day 6
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
use std::collections::HashMap;
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
const FILENAME: &str = "example.txt";
|
||||
#[cfg(not(debug_assertions))]
|
||||
const FILENAME: &str = "input.txt";
|
||||
|
||||
fn main() {
|
||||
let binding = std::fs::read_to_string(FILENAME).unwrap();
|
||||
let data: Vec<_> = binding.lines().collect();
|
||||
|
||||
part1(&data);
|
||||
part2(&data);
|
||||
}
|
||||
|
||||
fn part2(data: &[&str]) {
|
||||
let mut counts = vec![HashMap::new(); data[0].len()];
|
||||
|
||||
for message in data {
|
||||
message.chars().enumerate().for_each(|(idx, c)| {
|
||||
counts[idx].entry(c).and_modify(|i| *i += 1).or_insert(1);
|
||||
});
|
||||
}
|
||||
|
||||
for count in counts {
|
||||
let the_char = count
|
||||
.iter()
|
||||
.min_by_key(|(_, val)| **val)
|
||||
.map(|(c, _)| c)
|
||||
.unwrap();
|
||||
|
||||
print!("{the_char}");
|
||||
}
|
||||
println!();
|
||||
}
|
||||
|
||||
fn part1(data: &[&str]) {
|
||||
let mut counts = vec![HashMap::new(); data[0].len()];
|
||||
|
||||
for message in data {
|
||||
message.chars().enumerate().for_each(|(idx, c)| {
|
||||
counts[idx].entry(c).and_modify(|i| *i += 1).or_insert(1);
|
||||
});
|
||||
}
|
||||
|
||||
for count in counts {
|
||||
let the_char = count
|
||||
.iter()
|
||||
.max_by_key(|(_, val)| **val)
|
||||
.map(|(c, _)| c)
|
||||
.unwrap();
|
||||
|
||||
print!("{the_char}");
|
||||
}
|
||||
println!();
|
||||
}
|
||||
Reference in New Issue
Block a user