Add '2018/' from commit '4f35fa85150c24c3c606851be3a8cd5efd6f5500'

git-subtree-dir: 2018
git-subtree-mainline: 5ccd921b23
git-subtree-split: 4f35fa8515
This commit is contained in:
2022-01-09 17:08:32 +00:00
11 changed files with 584 additions and 0 deletions

48
2018/02/part1.rs Normal file
View File

@@ -0,0 +1,48 @@
use std::collections::HashMap;
use std::error::Error;
use std::fs::File;
use std::io::BufReader;
use std::io::prelude::*;
fn main() -> std::io::Result<()> {
let file = match File::open("input") {
Err(why) => panic!("couldn't open input: {}", Error::description(&why)),
Ok(file) => file,
};
let reader = BufReader::new(file);
let lines = reader.lines();
for result in lines {
let l = result.unwrap();
let mut freq = HashMap::new();
let mut is2 = false;
let mut is3 = false;
for ch in l.chars() {
let count = freq.entry(ch).or_insert(0);
*count += 1;
}
for (_ch, count) in freq {
if count == 2 {
is2 = true;
}
if count == 3 {
is3 = true;
}
}
if is2 {
count2+=1;
}
if is3 {
count3+=1;
}
}
println!("2: {} 3: {} 2*3: {}", count2, count3, count2 * count3);
Ok(())
}