diff --git a/day2/Cargo.lock b/day2/Cargo.lock new file mode 100644 index 0000000..3faaae6 --- /dev/null +++ b/day2/Cargo.lock @@ -0,0 +1,4 @@ +[[package]] +name = "day2" +version = "0.1.0" + diff --git a/day2/Cargo.toml b/day2/Cargo.toml new file mode 100644 index 0000000..4d985f6 --- /dev/null +++ b/day2/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "day2" +version = "0.1.0" +authors = ["attila "] + +[dependencies] diff --git a/day2/input b/day2/input new file mode 100644 index 0000000..2049121 --- /dev/null +++ b/day2/input @@ -0,0 +1,250 @@ +mgdsdwqulhrinkatfjoyzxcbvq +megsdwpulhrinkasfjdyzxcbvk +megsdwpulhmibkatfjoyzccbvq +megsdwtuohrinkatfjoyzecbvq +megsdwpulhdinkatfyoyzxcbvb +megszwpulhrirkatfjoyexcbvq +eegsdwpulhzinkatfjoyzxdbvq +megsdwpulhginkatfjoyqucbvq +leqsdwpulhrinkatfeoyzxcbvq +megsdwpblhrandatfjoyzxcbvq +megrdwpudhrinvatfjoyzxcbvq +mlgsdwpulhrinkatfuoyzxcbyq +mensdwpunhrinsatfjoyzxcbvq +megsdwpnlhrinqatfjoyzxcbuq +megsdwpnlhrinkatfqoysxcbvq +megsdwpulhrinkjtfjoywxobvq +megsdwpclhbinkaffjoyzxcbvq +mersdwpulhrinkattjoyzxcbdq +megsddpwohrinkatfjoyzxcbvq +mejsdwpulhrinratfjoyzxcbvl +megsdwpujhrinkatfjkbzxcbvq +megsdwpujhrinkatfjoyircbvq +megsdwgulhrinkatojoyzxcbvm +qegsdwpulhrinkatfjoyzxggvq +megsdwpflhrinkatfjsazxcbvq +megsdwpulhridkagfjoyzzcbvq +mejsdwpulhriykatfjoyyxcbvq +measdwpulhriakatfjoyzacbvq +mebsdwpulhrinkatfjoyzxmyvq +megsdwpflnrinkatfjoyzxcbxq +megsdwpulhxinuatfjoytxcbvq +megsdwsflhrinkatfjoyzxcmvq +megsdwpuuhritkarfjoyzxcbvq +megsdwpulhrinkazfjoyexcjvq +megsdwpulhrifkatfjokzxcbvc +megsdwmulvrinkatfjoyzxcblq +meggdwpulhrfnkatfjoybxcbvq +megsdwptlhrindatyjoyzxcbvq +megsdwpulhrinkauqjoyzxibvq +megsdwddlhrifkatfjoyzxcbvq +megddwpulhrinkagfjoyzxcbva +messdupulhrinkatfjoyzxqbvq +megsdwpuahrinkatfjotzxchvq +megsewpulhrankathjoyzxcbvq +megsdwpulhrinkatfjoynqcbvv +megsdwpulhrifkatfjotzxcbtq +megsdjpulcrinkitfjoyzxcbvq +fefsowpulhrinkatfjoyzxcbvq +megsdwpulapinkatfjoyzvcbvq +mejsdwpularinkatfjonzxcbvq +megsxwpllrrinkatfjoyzxcbvq +megsdlpulxvinkatfjoyzxcbvq +megsdwpulhriekztfjoyzxxbvq +megspwpulhrinuatfjoyzxcgvq +megqdwpulhrinkatfjoyzujbvq +megsdtpuehrinkatfjoyzxtbvq +megsdwjulhrmnmatfjoyzxcbvq +megjdwpulhrinkztfjoyzpcbvq +megsdwpuljrinkawfjlyzxcbvq +mewsdwpulhtinkatfjodzxcbvq +megsdwpulhrinkatfcoizxcmvq +meisdwpulhrinkatawoyzxcbvq +megshwpulhrinkatfjoyzxcbtz +megsdwpulhfinkatfjowzxcbvj +megodwpulhrcskatfjoyzxcbvq +megydxpulhrinkatfjofzxcbvq +megsdwpulhrinkatljoytxdbvq +mwgsdwpulyrinkatfjoyzxvbvq +meesdwpulhrinkatfjcwzxcbvq +cegsdwpwlhrinkatfioyzxcbvq +megsdwpulhrinkatfqhyxxcbvq +megsrrpulhrxnkatfjoyzxcbvq +megsdgpulhrinkatfjoypxcbnq +xegsdwpulhrinkaxkjoyzxcbvq +mngsdwpulhrenkatfjofzxcbvq +mecsdwpulhrinkabfjoozxcbvq +pegsdkpulhrinkatfuoyzxcbvq +megpdwpughrinkatfjoyzxzbvq +mxgrdwpulhrinyatfjoyzxcbvq +megsdwpulhpigkatfjoyzxcbfq +mhgsdwpulhrinkagfjoxzxcbvq +megsdwpblhtinkatfjqyzxcbvq +megsawvulhrinkatfjoyzxcfvq +metsuwpulhrinkatfjowzxcbvq +mexsdwpulhrinkatsjoyzxvbvq +megtdwpulhrinkatfjoizxcpvq +megidwpjlhrinkatfdoyzxcbvq +megsdwpuljrivkatfjoyqxcbvq +mespdppulhrinkatfjoyzxcbvq +megsdcpulhminkatftoyzxcbvq +megsdwpulhriskatfjayzlcbvq +mejsdwpulhrinkatfvoyzxibvq +megfdwputhriykatfjoyzxcbvq +megsdwparhrinkbtfjoyzxcbvq +mtgsdwpulhmingatfjoyzxcbvq +megsdwjulhrinkatfjtyzxtbvq +megsvwpulhrinkatfjoyzecbvf +megsdwpulprinkatyqoyzxcbvq +zegsdwpulhwinkatfjoyzxcfvq +megsdwiulhrinkatfjoyzxcjcq +aegsdwpulirinkatfjoyvxcbvq +mepsdwculbrinkatfjoyzxcbvq +msgsdcpulhrinkctfjoyzxcbvq +megsdwpulhrinkatfjoozxfevq +megscwpulhrinkatmjoyzxcbsq +megsdwpulhrinkltfjoyzxtmvq +megsddpulhrixkatfjyyzxcbvq +megsdwpulhrinkctfjoqzhcbvq +megsbapblhrinkatfjoyzxcbvq +megsdwpulhrinkatfjoyyxgpvq +mwpsdwpulhrinkutfjoyzxcbvq +megsdwpulhrinvnlfjoyzxcbvq +megsdwsulorinkakfjoyzxcbvq +mbgsdwpulhrinkktfjoyzxcbvg +megddwpulhrindatfjoyzxcbvr +memsdwpulhrinkatqjoyzxcbvo +megsdwpulbrinkarfjoyzxcbxq +megsdwpulhrilkatfjoynxcgvq +mxgsdzpulhrinkatfjoydxcbvq +megsawpulhrinkotfjoyzacbvq +measdwpulhrinkctvjoyzxcbvq +medsdwpulhtinkaqfjoyzxcbvq +megsdwsulhrknkatfjoylxcbvq +megadwpulhrinkatfjkyzxcbvh +mygsdwpulhrinkatfboyzxcavq +megsdwpulhrinkaufjxyzccbvq +mtgsdwpulhrunkatfkoyzxcbvq +megsdwpulhrinkamfwryzxcbvq +meesdwpulhrgnkatnjoyzxcbvq +megddwpolhrinkatfjoyixcbvq +megsdwpulhrinsatfjoyzicwvq +mmgsdwpulhrinkltfjoyzxcgvq +meisdwpulhhinkatfjoyzxubvq +megpdwpulhrinkatfroyzxcbkq +megszwpuhhrinkatfjoyzxcbzq +mersdwpulhrikcatfjoyzxcbvq +mjgsdwpulhrinratfjoyzxcbvl +megsdwnulkxinkatfjoyzxcbvq +megsdwpulhrinkatlaoyzxpbvq +megsdwpulhribkitfjjyzxcbvq +megsdwpzlhrinkalfjoyzkcbvq +megsdwpulhrinkutfjoyzxcdnq +mfgpdwputhrinkatfjoyzxcbvq +oegshwpclhrinkatfjoyzxcbvq +megvdwxulhrinkatfjowzxcbvq +mrgydwpulhrinkatfjoyzxcbvl +megsdwpuqhrinkaxfjoyzxcbfq +megsdwpughrinixtfjoyzxcbvq +megsdwpslxrinkatfjoyzxcbvl +megsdwpukhrinkatfjovzxnbvq +megsdwpulnrinkrtojoyzxcbvq +megsdwpuvhrinkatfjjyzxclvq +vegrdwpulhrinzatfjoyzxcbvq +melsdwwulvrinkatfjoyzxcbvq +megsdwpulhrizkbtfjoyzjcbvq +megsdwpulhrinlatfjoyzkcbvr +megsdweulhrinkaofqoyzxcbvq +megsdcpulhrifkatfdoyzxcbvq +negsdwpulhainkztfjoyzxcbvq +megsdwpklhrinkttfjoyzxvbvq +megsdwpothrdnkatfjoyzxcbvq +megsdwpulvrinkatfaoyzxcbvr +mewsdwpulhrinkatfooyzxtbvq +megtdwpulhrinkatfxoyzxcbvy +zegsdwpulhrinkamljoyzxcbvq +mkgodwpulhrcnkatfjoyzxcbvq +megsdepularinkatfjoyzxybvq +segsdwpulhrinkatfmoyzycbvq +mbgsdwpulhrsnkztfjoyzxcbvq +megsdwpmlhrinkatfjxyzhcbvq +megsdwpulhrinkatfboyqxmbvq +megsdwpulhrinkadtpoyzxcbvq +megsdmpulhrjnkatfjoyzxwbvq +megsdwpulhrivkatfroywxcbvq +megsdwdulhrinkatpjwyzxcbvq +megsdwpylhrdrkatfjoyzxcbvq +megsdwpulhrvnkptfjoyzlcbvq +megsdwpuihridkatfjuyzxcbvq +megsdwpulhbiikatfjxyzxcbvq +meggdwpulurinkatfjoyaxcbvq +mehsnwpulcrinkatfjoyzxcbvq +megsdwpulhrinkatfjoczdclvq +megsdwjulhrinkatfhkyzxcbvq +megsdwpulhrinoatfjoyzxcwvy +megpdwpelhrfnkatfjoyzxcbvq +megsjwpulhrwnkatfjdyzxcbvq +megsdwpulhrbniatfjoyzxcbpq +megsdwpulhrwnkatfjoydxcpvq +megsdwrulhrinkatfjvyixcbvq +yegvdwpulhtinkatfjoyzxcbvq +meosdwpulhrinkatfjhyzxsbvq +mjgsdwpulhrinkatfjoyyxcjvq +megsdwpulhrinkatfnoyzlmbvq +mehsdfkulhrinkatfjoyzxcbvq +megsdwpuahrinkatfyoyzxcwvq +megsdwpulhyinkatfjobzkcbvq +megsdwpjlhrinkatfnoyzscbvq +megsdwiulhrinqatfjoyzxcavq +megsdwpulurinkatfjoykxcbmq +megsdwpmlhvinkatfjotzxcbvq +megswwpulhrinfatfjoytxcbvq +mxgsdwpulhrrnkatfjoyhxcbvq +megubwpulhrinkaafjoyzxcbvq +megsdwpulhrdnsztfjoyzxcbvq +megsdwpulhronkgtfjhyzxcbvq +megsdwzulhfinratfjoyzxcbvq +megsdwpulhrinkrtfjqyixcbvq +megspwpulhrinkatfjoywxcavq +megmfjpulhrinkatfjoyzxcbvq +lelsdwpulhrinsatfjoyzxcbvq +megsdwnultrinkatfjoyzxybvq +megsdwpulhdnnkatfjpyzxcbvq +megsdwpulhzinkatfjoyzhcpvq +megoddpulhrilkatfjoyzxcbvq +megsdvpulhrwnkatfjoyzxcbdq +megsdwpulhmikkatfjoyzxcbvr +meesdwpulhrinkaofjoazxcbvq +megndwhulhrinfatfjoyzxcbvq +megsdwpulhjihkatfjoyzxcbvb +jegsdwpulhrinkattjoszxcbvq +megsdwpulhrenkatfjodzxcbvp +mefsdwpulhrinkatfjoyzxcczq +megsdwpulhrknkatfjovzxcbvb +megytwpulhrinkatfjoyzxcbvo +csgsdwpulhrinkatdjoyzxcbvq +megsbwpulhrinkazfjtyzxcbvq +mrgsdwpulhjinkatfjoyzxcbvm +megsywzulhrinkatfjofzxcbvq +megxdwpulhrndkatfjoyzxcbvq +mcgsdwpuphrixkatfjoyzxcbvq +megsdlpulxvinkatfvoyzxcbvq +megsdwpulhrinfatfjoyzicbvo +megwgwpulhrinpatfjoyzxcbvq +mggsdwpulhrinkatfjtrzxcbvq +msgsdwpulirinkatfjoyzxcbaq +megsdwpulhrineatfeoyzxcbvl +megsdnpulhrinkatojoyzxcbvb +mfgsdwpulhdinkatmjoyzxcbvq +megsdwpulhrinkawfjuyzxcbvg +megsdwpulhrincatfjoyzxcxvu +mevsdwzplhrinkatfjoyzxcbvq +megskweulhfinkatfjoyzxcbvq +mebsdvpulhrinkatfjoyzxcbkq +megddwiulhrinkatfioyzxcbvq +mygsdwpulhqinkatfooyzxcbvq +megsdweulhrfnkatfjoybxcbvq +mrgsdhpulmrinkatfjoyzxcbvq +megsdwkukhrinkatftoyzxcbvq +megsqwpulhrinfatfjoyzxebvq +megsdwpulhriskanfjoyzxctvq diff --git a/day2/src/main.rs b/day2/src/main.rs new file mode 100644 index 0000000..974be6d --- /dev/null +++ b/day2/src/main.rs @@ -0,0 +1,42 @@ +use std::fs::File; +use std::io::Read; +use std::prelude::v1::Vec; +use std::collections::HashMap; + +fn main() { + let mut f = File::open("input").expect("file not found"); + + let mut contents = String::new(); + f.read_to_string(&mut contents).expect("something went wrong reading the file"); + + let lines: Vec<&str> = contents.split("\n").collect(); + + println!("{}", count_doubles_and_triples(lines)); +} + +fn count_doubles_and_triples(lines: Vec<&str>) -> i32 { + let mut doubles = 0; + let mut triples = 0; + + for line in lines{ + let mut counts = HashMap::new(); + + for character in line.chars() { + *counts.entry(character).or_insert(0) += 1; + } + + if counts.values().any(|&count| count == 2) { + doubles += 1; + } + + if counts.values().any(|&count| count == 3) { + triples += 1; + } + } + + triples*doubles +} + +fn find_common_letters(lines: Vec<&str>) -> Vec{ + +} \ No newline at end of file