From b89e4f4929a89e98026f5ed32883afe1ad3f5de3 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 2 Dec 2018 09:13:46 +0100 Subject: [PATCH] day02 both --- input/day02.txt | 250 +++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 4 +- src/tasks/day02.rs | 50 +++++++++ src/tasks/mod.rs | 1 + 4 files changed, 303 insertions(+), 2 deletions(-) create mode 100644 input/day02.txt create mode 100644 src/tasks/day02.rs diff --git a/input/day02.txt b/input/day02.txt new file mode 100644 index 0000000..a008cfa --- /dev/null +++ b/input/day02.txt @@ -0,0 +1,250 @@ +mvgowxqubnhaefjslkjlrptzyi +pvgowlqubnhaefmslkjdrpteyi +ovgowoqubnhaefmslkjnrptzyi +cvgowxqubnrxefmslkjdrptzyo +cvgowxqubnhaefmsokjdrprzyf +cvgowxqubnhjeflslkjgrptzyi +cvgowxqvbnhaefmslkhdrotzyi +hvgowxqmbnharfmslkjdrptzyi +cvgoaxqubqhaefmslkjdrutzyi +cvxowxqdbnhaefmslkjdgptzyi +cvgikxqubnhaefmslkjdrptzyz +cvgnwxqubnhaqfjslkjdrptzyi +cqgowxqubnhaecmslkjgrptzyi +cvpowxqucnhaefmslkjdrptzyz +fvuoexqubnhaefmslkjdrptzyi +svgowxqubnhaefmsvkjdrttzyi +cvgowxqubnhaefmblkjdfpbzyi +cvkoyxqubnhaefsslkjdrptzyi +bvgowxqublhaefmslkjdrptzfi +xvgewxqubnhaefmslkjdrztzyi +cvgowxqubzhaefmslkkrrptzyi +cvgowxqubnhaefmslkudruuzyi +cvgowxqubnhaefmvlkjdrptwyl +cvgoyxqubnhaefmslkjvrotzyi +cvgowxoubnhaewmslkjdrpbzyi +cvgowxgubnhaefmslijdrptzxi +lvgowxqkbnhaefmslkjdrptzqi +xvgowxqubyhaefmflkjdrptzyi +wvnowxgubnhaefmslkjdrptzyi +cvgowxguwnhaefhslkjdrptzyi +cvgowfquxnhaefmdlkjdrptzyi +cvgywxqubnuaefmsldjdrpfzyi +cvkowxqzbrhaefmslkjdrptzyi +cviowxzubnhaefmslkjdrptqyi +cvgowxqubnhaefmsozjdrptzyc +cvglwxuubnhaewmslkjdrptzyi +cvgowxquknhaebmsfkjdrptzyi +vvgowxqubnhaesmslkjdrptzri +cvgowxoubndaefmslkjdrftzyi +cvgowxqubghaefmslkjdeptzyw +cvgowxqubnhaetmhlkjdrpvzyi +cvgowmquunhaefmslkjdrptzyt +cvgooxqpbniaefmslkjdrptzyi +cvgowxqubnhaeumslkjdkptiyi +cvgrwxqsbnhaemmslkjdrptzyi +cvrowxqubnhaefmslkjdrctcyi +dvgcwxqubnhaefmslkjdrptzyq +cugowxqubnhasfmmlkjdrptzyi +cwgowxqobzhaefmslkjdrptzyi +cvgowxquwnhaefmulkjdrptbyi +nvgowxqmbnhaefmslyjdrptzyi +cvgowxqubniakvmslkjdrptzyi +cvyowxqubnhaefmslejdrptzyx +cvgobxqubghaefeslkjdrptzyi +cvgowxiubnhaebmslkjdfptzyi +cvgosbqubnhaefmslkvdrptzyi +cvgpwxqubnhaefvslkjdrptzyh +cvgowxqubnyaefmslgjdsptzyi +cvgowxqubnhaefmslkjdrprzzp +cvgowxqubwhaemmslkjdrpazyi +cvgowxqpbnhaemmslkjdrpczyi +cvgoqxqubnhaelmslkjdrptzye +cvgowxqubnhaefmslbjdrttzvi +cvgowxqubnhlefmslkvurptzyi +cvgowxqujngaefmslktdrptzyi +cvgowxqubnhaefmsckjdcwtzyi +cvcowxqubnhaetmslkjorptzyi +jvnowxqubnhaefmslkjdrptzyf +cygowxqkbnhaefmslejdrptzyi +cvmowxqubnhaefmslkjdritzoi +cvgowxqubnpaefmslkjdrpnnyi +cvgowxqubnhaefmolkjdrpnzyy +uvgowxoubnhaefmslkjdrptzvi +cvgowxbabehaefmslkjdrptzyi +cvgokxqubnhaefmsckjdrjtzyi +cvgoxwqubahaefmslkjdrptzyi +cvgowxqusnhaefmslijdrptyyi +cvgowxqubmhaeqmslkxdrptzyi +cvgouxhubnhaefmslkjdrjtzyi +cvgowxqubnhaefmslrjdqptzyk +cvgowxiublhaefsslkjdrptzyi +cvgowxqubnxgefmslkadrptzyi +ovgowxqugshaefmslkjdrptzyi +cvgowxquznhaeemslsjdrptzyi +cvkowxqubnhaeomslkjdeptzyi +cvgvwxqubxhaefmslkjdrptzyu +cvglwxqybnhaefmslkjdrptzyb +cvgowxqubnlfwfmslkjdrptzyi +cvaowxqubnhaefmslkjdrvtzbi +cvgowxqubnrmefaslkjdrptzyi +cvgowxqubnhaefmsnkjdfpwzyi +cvgawxqmbnhaefmsykjdrptzyi +chgowmqubnhaefmslkjdrptwyi +cogowxqubnhaefmslkjxrptzri +cvgohxqubnoaesmslkjdrptzyi +cvdowxqubnhaofmslkjdrpvzyi +vvgowrqubnhaefmslkjdrpthyi +cvgowxquknhuefmslkjdoptzyi +cvyowxeubnhaefmslhjdrptzyi +cvglwxqubnhaefmslkjdrptdyq +cvgowxqubnhaefmsikgdrptayi +cvgowxqubnhaefjhlkjdrpczyi +cvgzwxkubnhaefmslkjdjptzyi +cxgowxqubnhaefmslkjdrptwyy +cvgowxqubnhaefeslkjdrmqzyi +cvgowxvubnhaefmilijdrptzyi +cvgowxqzbthaeomslkjdrptzyi +cvgowhqubndaefmglkjdrptzyi +cvgowxvubnhaeamylkjdrptzyi +cvgowiqubnhgefmslkjdrctzyi +cvgowxqubchaefmslksdritzyi +cvgowxqubnhaefmsnkjdreyzyi +cvgowxqubihaefmslkgdrutzyi +cvgowxqjbnhaeamslkjdrptzwi +cvgowxzubnhaefmsxkjdrrtzyi +cvgowxqubyhaetmslnjdrptzyi +cvgowxquhnhaebmslkjdxptzyi +cvgowxqubnhanfmslujdxptzyi +cvgowxqublhnefaslkjdrptzyi +cvgmwxqtbnhaefmslkjsrptzyi +jvgowxqubnhaeamslkjdrpmzyi +cvgowxqubhiaefmsljjdrptzyi +svgowxqubnhaefmswkjdrpozyi +cvgowxqebnhaeqmslkjdiptzyi +cveowxqubnhayzmslkjdrptzyi +cvglwxqubnhaefmxlkjdiptzyi +cvgowkqubdhaefmszkjdrptzyi +cvgowxkxbnhaeffslkjdrptzyi +cugowxqubnnaefmslujdrptzyi +cqgowxwubnhaepmslkjdrptzyi +cvgowxqubnhayfmmlkjwrptzyi +cvgowxquenhaefmsskxdrptzyi +cvgowxqubnhiefmsrkjdtptzyi +mvgowxkubnhaefmjlkjdrptzyi +cvgowkquunhaefmglkjdrptzyi +cvgowxqubqhaexmslgjdrptzyi +jvgowxqubnhaefmslkjddptlyi +cvgiwxqubnhaefmslkjdpptmyi +czgowxqubntaevmslkjdrptzyi +cvgotmqubnhaefmslkjdrpazyi +cvgowxtubnhaefmslkqdtptzyi +cvbowxqhnnhaefmslkjdrptzyi +cvgowkqubshaefmstkjdrptzyi +cvgowqqrbnaaefmslkjdrptzyi +cvgoixqubnhaefmslkjdrpmryi +cvgoxxqubnhaeimsxkjdrptzyi +cvgowxqubzhaebmslkjyrptzyi +cjgewxqubnhaefsslkjdrptzyi +cvgowxqdbnkaefmslwjdrptzyi +cvgowxqzbnhaeamslkjdrftzyi +cvgoixqubnsaewmslkjdrptzyi +cvgswxqubnhaxfmslkjdrptzni +cvwowxmubnhgefmslkjdrptzyi +cvggwxqubnhaefmslqjdbptzyi +cvgzwxqjbnhaefaslkjdrptzyi +cvgowzqubnharfmspkjdrptzyi +cvgowxqubnhawfmslkjdeptzyb +cvuowequbnhaefmslkjdrntzyi +gvgowxqubnxaefmslkjdrjtzyi +cvgowxqubnhmetmsldjdrptzyi +cvgowxqubnhamfmsqkjdrptyyi +cvgoqxqubnhaefmslkjtrpazyi +cvgoexqubhhaefmslkjdrhtzyi +cvgowwqubnhaeflslkjdrptzyf +cvgowlpubnhaefmslkjdrptvyi +cvgowxouunhaebmslkjdrptzyi +cvdowhqubnhaefmslijdrptzyi +cvgowxqubnkatfmslkjdrhtzyi +cvgowxqpbnhxeumslkjdrptzyi +cvgowxqubnhaefmsukjjrptzyn +cvgowxqubnhmefmslzjdrvtzyi +cvtowxqubihaefmclkjdrptzyi +chgowcqubnhayfmslkjdrptzyi +cvguwxqubnhaefmblkjarptzyi +cvgowoqubnhaefmsikjdrytzyi +cvgkwxqubnhaefmslkjdrptchi +cvhowxqubnhaefmslkjdrvlzyi +cvlowxfubnhaefmslkjkrptzyi +cvgowxqubhhaefoslkjdrytzyi +cvgowxsubqhaefmslpjdrptzyi +cvgowxpubnhaefmslhjdrptzyb +cvgowxqubnhrefmjlkddrptzyi +cvgowxqubnhaxfmykkjdrptzyi +mvgowxqubnhakfmslkjdrptnyi +cwgowxqubnhaffmslkadrptzyi +chgowxquwnhaefmslsjdrptzyi +cvgowxqubnhaefmslkjdwpnsyi +cvgawxqubnhaefmslkldyptzyi +cvgowxqubnhiefmslkjdiprzyi +cvgkqxqubnhaefcslkjdrptzyi +cvgovoqubnhaefmslkjdrpuzyi +cvgowxqubnhaefmszkjdrjtzyk +cvgopxqubnhaefmslkjdqpnzyi +cvgtwxqubnhaefmslkjnrptzri +cvgowxqurnhaedmslfjdrptzyi +cvpowxqubnhaefmswkjdrltzyi +cvgowxqujnpaefmslkjdrptdyi +cvgowgqubnhzifmslkjdrptzyi +lvgowxqubnhaenmslkjdbptzyi +ebgowxqubnhaeymslkjdrptzyi +cvgowxtubqhaefmslkedrptzyi +cvgowxqubshaesmslkjdrptryi +cvgowxqubnhaefmflkjmrpkzyi +cvgowxqubngaefmslkjdrytzgi +cvgowxqubnhaefmslklhzptzyi +cveowxqubnhgefmslkjdrpezyi +cvgowxqubnhaeomslkjdrqtzym +cvgowxqubzhaefmslwjdrptfyi +cmgowxqubnhaefmsdkjdrptzui +cvlowxqubnhaefmslsjdrptzwi +cvhowxpubnhaefmslkjhrptzyi +cveosxqurnhaefmslkjdrptzyi +cvgowxqubnhaefgsdkjdrptjyi +cvgvwxqubnhaefmslzjdmptzyi +cviowxqubnhalfmslkjdrptzyr +cvgowxqubchqefmslkjdrptzoi +cvgownqubnhaefmsyktdrptzyi +cvgywxqubnuaefmslkjdrpfzyi +cvgobxqunnhaefmslkjdrptzbi +cvgowxqubshaefgslkjdrxtzyi +cvghwxqubnhaefmslkjdrbtmyi +cvhowxqubnhaefmslkjdrpnzys +cvgowxqubnmaefmslejdrptzyq +cvmrwxqubnhaefmslkjdrpzzyi +cvgowxqubshaefmslkfdrptzyu +cvgowqqubnhaefmslkodrpjzyi +cvgnwnquknhaefmslkjdrptzyi +cvgowxquxnhacfmflkjdrptzyi +ovgowxqubnhaefmslkjmrmtzyi +cvgowxqubneaefmslkedrptzqi +cvgowxqubphweflslkjdrptzyi +cvgowxqudnhaefmplkjdrptdyi +cvwowxbubnhaefmslkjurptzyi +cvgowxtubnhaefmslkjdrwwzyi +cvgowxqubnhkefmslajdrptzyn +cvgowxqxbphaefmslkjdrptzsi +cvgowxquenhaefmslmjwrptzyi +zvgowdqubnhaeftslkjdrptzyi +csgowxqubnhgefmslkjdrptzyy +cvgolxqubahaefmslkjdrpvzyi +cvgoqxquhwhaefmslkjdrptzyi +cvgawxqubghaefmsrkjdrptzyi +cvgozxqubnhaefmslkwdfptzyi +cvgowxqubnhaefmslhjdkptzzi +cvnowxqubnhaefmsqkjdrptqyi +cvpowxqubnhaefmslkpdrptdyi +cvgowxoubnhaermslkjdrctzyi +cvgowxqubnheefmslkjdrctzyr +cvgowxqunnhaqfhslkjdrptzyi +cvgowxqulnhaefmslrjdrntzyi diff --git a/src/main.rs b/src/main.rs index 273a1db..f296839 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,4 @@ fn main() { - aoc_2018::tasks::day01::task1(); - aoc_2018::tasks::day01::task2(); + aoc_2018::tasks::day02::task1(); + aoc_2018::tasks::day02::task2(); } diff --git a/src/tasks/day02.rs b/src/tasks/day02.rs new file mode 100644 index 0000000..44eef79 --- /dev/null +++ b/src/tasks/day02.rs @@ -0,0 +1,50 @@ +use utils; + +pub fn task1() { + let input = utils::read_file("input/day02.txt"); + let mut count_two = 0; + let mut count_three = 0; + + for line in input.lines() { + let mut counts = [0u8; 26]; + for c in line.chars() { + counts[(c as usize - 'a' as usize)] += 1; + } + if counts.iter().any(|count| *count == 2) { + count_two += 1; + } + if counts.iter().any(|count| *count == 3) { + count_three += 1; + } + } + + println!("Part 1: {}", count_two * count_three); +} + +pub fn task2() { + let input = utils::read_file("input/day02.txt"); + + for x in input.lines() { + for y in input.lines() { + let mut diff_index = 0; + let mut diff_count = 0; + + for (i, (a, b)) in x.chars().zip(y.chars()).enumerate() { + if a != b { + diff_index = i; + diff_count += 1; + } + } + if diff_count == 1 { + println!( + "Part 2: {}{}", + &x[0..diff_index], + &x[diff_index + 1..x.len()] + ); + return; + } + } + } + + println!("Part 2: None found!"); +} diff --git a/src/tasks/mod.rs b/src/tasks/mod.rs index 12b8f18..28326d5 100644 --- a/src/tasks/mod.rs +++ b/src/tasks/mod.rs @@ -1 +1,2 @@ pub mod day01; +pub mod day02;