diff options
author | Justin Worthe <justin.worthe@entelect.co.za> | 2016-12-06 09:02:16 +0200 |
---|---|---|
committer | Justin Worthe <justin.worthe@entelect.co.za> | 2016-12-06 09:02:16 +0200 |
commit | 02cb93c30dbb3d39c36fbf024c5e53bc0e4d1f79 (patch) | |
tree | aaa86bd4c7099f4dc8b9688be2a6a0456ec8e68b /aoc6/src/main.rs | |
parent | 96422481271c8b6cd0ec095db44ac85525edf688 (diff) |
AOC6
Diffstat (limited to 'aoc6/src/main.rs')
-rw-r--r-- | aoc6/src/main.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/aoc6/src/main.rs b/aoc6/src/main.rs new file mode 100644 index 0000000..45ae3b1 --- /dev/null +++ b/aoc6/src/main.rs @@ -0,0 +1,27 @@ +use std::io::BufReader; +use std::io::prelude::*; +use std::fs::File; +use std::collections::HashMap; + +fn main() { + let lines = read_file(); + let answer_width = lines[0].len(); + for i in 0..answer_width { + let line = lines.iter().map(|line| line.chars().nth(i).unwrap()).collect::<Vec<_>>(); + + let mut char_counts = HashMap::new(); + for character in line { + *char_counts.entry(character).or_insert(0) += 1; + } + let (character, _) = char_counts.iter().min_by_key(|&(_, &count)| count).unwrap(); + println!("{}", character); + } +} + +fn read_file() -> Vec<String> { + let file = BufReader::new(File::open("test_input.txt").unwrap()); + file.lines() + .map(|line| line.unwrap().trim().to_string()) + .filter(|line| line.len() > 0) + .collect() +} |