From d76047fabcbc4a8fa3c47233502fee1fba4b5db7 Mon Sep 17 00:00:00 2001 From: inga-lovinde <52715130+inga-lovinde@users.noreply.github.com> Date: Mon, 21 Dec 2020 03:22:15 +0100 Subject: [PATCH] Solution for day 6 --- day06/Cargo.toml | 9 +++++++++ day06/src/main.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 day06/Cargo.toml create mode 100644 day06/src/main.rs diff --git a/day06/Cargo.toml b/day06/Cargo.toml new file mode 100644 index 0000000..e46e5e0 --- /dev/null +++ b/day06/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "day06" +version = "0.1.0" +authors = ["inga-lovinde <52715130+inga-lovinde@users.noreply.github.com>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day06/src/main.rs b/day06/src/main.rs new file mode 100644 index 0000000..5f9e16d --- /dev/null +++ b/day06/src/main.rs @@ -0,0 +1,28 @@ +use std::collections::HashMap; +use std::io::{self, BufRead}; + +fn main() { + let stdin = io::stdin(); + let mut answers = HashMap::new(); + let mut result_anybody = 0; + let mut result_everybody = 0; + let mut group_size = 0; + for line_result in stdin.lock().lines() { + let line = line_result.unwrap(); + if line == "" { + let group_anybody = answers.len(); + let group_everybody = answers.values().filter(|&&count| count == group_size).count(); + result_anybody += group_anybody; + result_everybody += group_everybody; + println!("Group: {}/{}, total: {}/{}", group_everybody, group_anybody, result_everybody, result_anybody); + answers.clear(); + group_size = 0; + } else { + group_size += 1; + for ch in line.chars() { + let count = answers.entry(ch).or_insert(0); + *count += 1; + } + } + } +}