From 889410ee83949aabb7424195bfdd1925e71eb66d Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 6 Dec 2022 09:36:02 +0100 Subject: [PATCH] [rs] Solve 2022_06 part 1 --- inputs/2022_06.input | 1 + inputs/2022_06.solution | 1 + rs/src/y2022.rs | 1 + rs/src/y2022/d05.rs | 2 +- rs/src/y2022/d06.rs | 17 +++++++++++++++++ sample_inputs/2022_06.01.input | 1 + sample_inputs/2022_06.01.solution | 1 + sample_inputs/2022_06.02.input | 1 + sample_inputs/2022_06.02.solution | 1 + sample_inputs/2022_06.03.input | 1 + sample_inputs/2022_06.03.solution | 1 + sample_inputs/2022_06.04.input | 1 + sample_inputs/2022_06.04.solution | 1 + sample_inputs/2022_06.05.input | 1 + sample_inputs/2022_06.05.solution | 1 + 15 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 inputs/2022_06.input create mode 100644 inputs/2022_06.solution create mode 100644 rs/src/y2022/d06.rs create mode 100644 sample_inputs/2022_06.01.input create mode 100644 sample_inputs/2022_06.01.solution create mode 100644 sample_inputs/2022_06.02.input create mode 100644 sample_inputs/2022_06.02.solution create mode 100644 sample_inputs/2022_06.03.input create mode 100644 sample_inputs/2022_06.03.solution create mode 100644 sample_inputs/2022_06.04.input create mode 100644 sample_inputs/2022_06.04.solution create mode 100644 sample_inputs/2022_06.05.input create mode 100644 sample_inputs/2022_06.05.solution diff --git a/inputs/2022_06.input b/inputs/2022_06.input new file mode 100644 index 0000000..d549e64 --- /dev/null +++ b/inputs/2022_06.input @@ -0,0 +1 @@ +rqwqtwwrmrqqrcrtrpppjrjgrgjgqgttgbbhppftpfpdpmpsstffqvfqvvdjjpllltqltqtrrzlllbldbdsdqqgpqggzccgbgnnmjmljmljldjldjjlnnhndhdmmslmslmlhmmntnrtnrnbrbqrqhqfftwftfsfzfcfrrzllchcwwtwstwwjwrjjfwwgzwzqzpzhzqhqbhqhssltsszhsszdssrwssdppjcpjjrwjwnwjnnzjjhsjhsjsjvvtffffqfflglwglgbgpbgbgghfghfhdfhdfhfssqppvlvslltwwhwvwpwgggnpnnmqnntqnnlhhdbhdbbtvvcrrcgrrdrvrjvvlmlnmndnmnrncnznsnsqnsswrwzwmwzzbpbhphqhpqpbpqpjpjvpvwpvwppdvdhdccqbccfncctrcrjcjjdsdhdnhhwpwlwwbmbhmbhhpzhhccvffqqnsqqmnnspnnpfpzppspgsppgbbdwbbdcchfhgfhfllljtllnjlnlddvcdvdqvvqwqppprtpthtthqqfbqqpfpzfpfcfsscrsccbgbngbbgdbbpgpqqlmqlmmgffqqqsbqbtblbwbqqvbqvbqvvnzvzpvvqhvqqtltptllbflbflbflltddlblflvfvbffmsffhlhshmmgbbgjjdndqqmqllzjzvvhjhnhcnchhznnhhppwqpwpffwvwzzppwpfwftwtnnqbnqnrnrzznffzzblzlvzlzrrszscsqcssbggcgvvddsttgqqgwgcclzzszddlvddvbddrlrcllrblrrhlldzdtdccqllsblsszlszzdllhjljhhhzhffdwfdwfddwdtdrtdtntddldsllqffdvdhdpdhdrdprprrhggdqgghggmwgmghhchlhmllrnrdrcrqccbqqfbqbccjpjhhvppcwpwffmmzzfqflfjfdfbfqqtmthmttwftwwpmpzplzzpvvgppsbpbccbtcbcddzbzwwmsscrcctgtgjgtjthhjzzcqqmmmvccwjcwjwzzwnnwgwtgwwbsbvbccrscccnggfjfwfjfrfsfddncdncndnqqwzzmssbdsbswswdddpdqdbddcvcmmwwssrtrrlddndmdtmtdmttwwmsmffwqwvwbwhbbqfqqgcqcmctctntjntnbnrbrmbbqtqccqbcbvbnbqnnghgbbmfmwmdwmdmpmwppdwpdwwnzwnwrnwrnntqnttcmcqqbrqrttsjtstcscpcspsnswsggrhggjrjjbhhbnbmmdlmddtqdtdrdwwjvjgjjdhjdddbwwsfflppbwbcbpbjjzqznnrwnnvmvjvwvqqrlljgjmjjqhjhwjhwjjsvsnvvlwlqqjpjjbsjjcddtfthffrqfrqrfqfrfllfzzqllztltnltntpttqmmgwmwwwjjdrjrzrlrwlwzzzzphpphvphvphvpvdvfdflljgglrlrqlrrfpfqpqnpqpmmblbflbfbpfpwpjwpjpbjpjmjljblldbllnrnjjjljrlrcrrgzgbbzrznzzhnzhhtmhmqhmqqnzzvfzvzfftjftfvvpmvppwzzhnzhzvvwzwwqcwctwwgrrtgglgngsgvgwvwpvpbbrvrvwrvwvbwwpsprrrcbbpqppfjjjqnjndnmddvsvlslmmwwdwcchmmrjmjwwsrwrhwwpcgmpmvbdmlmqbnblbbgtmtgqslnvcnmwrflrnwhqzrsnwhncwdvbcpjrqsscwzrjvslhscpvmqjnltwhshjmbhgttbzllrvpnhgdmwtddbwmpgbhrndpgwzfvqdmpcvhlnjnqbwqmshgwhmfjgsbscsjtfbfvmlljqwwjtnltbzjpcqdfmdldvmsnmzqmghcvhlpjzzszcpvldrflbcppzwgppfpbslplrqwgbfwpwbtbnrmbrrrpqndzvhmlhvtlnjvhdrhhvmwzjntsgffjsdpdlhnlslnbmbsmdsvpmpbjpjcwhbpfnhbmttfglglnnhhcqvbpvnrwcszwjsdhqwctrpgsrcbfpzhbnrbllrlflqdlgzwpwgwwvmbsppbcjcdltbgwfndqjlvndhtclfmwnqrbfvvqdzspfcslplhtmsqqtrcdvbhfscvnmzplcglwnzbvgflclclqmdgfzjqqrrmpcqrzgqcnzbmncmvdzrmmvfqrrqzqbjmjgjwmfbnmmgvmzsgjjspjqbvfhrdvllgqsffjnfqdthjbjwhwqdqhsnctwgbszvrsbwbpptcjjvftnhdmwmhtjrjrlrdrqjznhqftgtldnpbrlprjmplmwdbzqpmwwvcqccjlhqbhcjprvrfmmfmljwmbrlhcglthgbmrfmbpsztfcglpzlfbpjhmvcmvrprmvmrvvgbbllzschwshhfbnmgwrbhlqvsdjdmmbtjzthwssghtqvhtqcswdhbwhphhsrwhwwtslwvrhpgqfmftnrtqpwfqqdgftdlqfndjlzhvlrthnqdqrzpprdgwwqlplrmqtdqgbdntmjcjhlbbmctvnnhtppfbjpsbmndbdplqlfqfhzqvtqcvmprwbhdtjrqrqvmcssqnfqwtchmjfjlpwsghplbthdnbhfbhhphdmlmtjcvmzjbnqbfldrvlmjfnnrlsnwrtnrpfqdhchltmbvjzhgjwzblqdthmffztqvzzfszmdqdzlfpbfgjfdjqscrhvjflbllnlghncczrlpcbwpnmzcnqhbfnlmnbqvmwvbchwhlfcssctsdcwmtfdgbhljwprfncdgwlgzzmvfqrdsmlwbrmbmtzqqdqdpzvtbstscglrwdpndnstrhgjchnpzsvcjngmzsddwsbllpvqqzzjlmsbncbndqmqphzqzcngjzpfnjmsvngtcvhhjsssrnhjrsmvbsrdjcrppvgsqbqjzbrhjqlgmqfclbrdhwwjdlsjnmjcjrmsstngswrhmdqthprcbrndfpdjgpqtfmmfvbztqdhzhzbzhjjpfgnvrmspdvmhfvbvztmlrhfqfdcfnzzndlfldpfhrbjrwlwnprdmqjwppbrdjhpbvnrvjlrbwdwttzhqqgcclbwghbgrhcvwjrrchqgzztrjgrltcpdscjdfcphndfzdqsbpsjrljdnflfvrzcrjflddfgpvnpmdqbhzwbfrpzsnpbcbgfchvvmqpnfpvvdvhfnpbfzwmbnlpqzgrpwtsjbpzdrsfmnfqwqvpgnrjhmvmphlfdpfhdjljlzftdzdvhjrvjdctwfrctglwmrtdlrvmhcqvfvpgmstghczmvclptzspdsrlvrgvjtvflhsmqswdpqjrrnhgrggzmcpqsctqbhpqrsbstwzgzghqgltcpbrhbcdqlhfjhlcrnhrpjdzlzqqprvzntbjztqgdqqttmbpbcfbjmdjqsflbczmfnsjdzcnnmjjllhvwbwlgrlpvbffwjvctwnrsfqdnwntscpsjnshhdmcqmcpscrmzltldwlmfnbhbtprsgtsbvzfrsfpvmqjzjqqhwdjjzvbhrvtbscrcpzrqsbgfbpwqfmbsrlhhtntjmtrtlwqsdbmgtdlrwfdnmwwzlltbrjgghbstbnffzmzzdlcdgvmrzsjnqjvczmhrgwbrblrqfmzbbcnfsbfpgjsmptzbclfdnwfgbzlpbgqrdhdmfjdnlzczdpvtbzdmrthslngbrldllfcjplhglmwsfpqjnrgpgqfmbbwchbrqqsncfwnmgdmtchdhlzzqjvtvtvgqbtwvwpsjqwdqhrlfmdgdzchvfbcmqjllpjtnphwqvfwpcjmzqhsbwlcmbsgththrsjtnzlsrcptgtrfcwptbstcsdzbwjljzjztzbqsjdvwglpbpgdjtthjjmsnljltglqcszbzqmblfpncntjzzhmjffldcrcvjjswvzlfffrmsgjtpzggtlpfwpwbmhmggpnmzwrgdjrhglnhfdcjdfjtdjvrnlgqtfqmpgjcvcmnwhhbczwwntfbmgssglngqlttfpcznswvmbprsrzljtlwlljnbbrnwdvvlsbdv diff --git a/inputs/2022_06.solution b/inputs/2022_06.solution new file mode 100644 index 0000000..f651c3d --- /dev/null +++ b/inputs/2022_06.solution @@ -0,0 +1 @@ +Part 1: 1707 diff --git a/rs/src/y2022.rs b/rs/src/y2022.rs index c5df247..3c304dd 100644 --- a/rs/src/y2022.rs +++ b/rs/src/y2022.rs @@ -3,3 +3,4 @@ pub mod d02; pub mod d03; pub mod d04; pub mod d05; +pub mod d06; diff --git a/rs/src/y2022/d05.rs b/rs/src/y2022/d05.rs index 29e27c8..677876d 100644 --- a/rs/src/y2022/d05.rs +++ b/rs/src/y2022/d05.rs @@ -46,7 +46,7 @@ pub fn solve(input: String) { let part1 = part1.iter().map(|s| s.last().unwrap()).collect::(); println!("Part 1: {}", part1); - // Par 2 + // Part 2 let mut part2 = stacks.clone(); for (amount, from, to) in moves { let mut values = vec![]; diff --git a/rs/src/y2022/d06.rs b/rs/src/y2022/d06.rs new file mode 100644 index 0000000..5940bd0 --- /dev/null +++ b/rs/src/y2022/d06.rs @@ -0,0 +1,17 @@ +pub fn solve(input: String) { + let part1 = input + .chars() + .zip(input.chars().skip(1)) + .zip(input.chars().skip(2)) + .zip(input.char_indices().skip(3)) + .find_map(|(((c1, c2), c3), (i, c4))| { + if c1 != c2 && c1 != c3 && c1 != c4 && c2 != c3 && c2 != c4 && c3 != c4 { + println!("{c1}{c2}{c3}{c4}"); + Some(i + 1) + } else { + None + } + }) + .unwrap(); + println!("Part 1: {part1}"); +} diff --git a/sample_inputs/2022_06.01.input b/sample_inputs/2022_06.01.input new file mode 100644 index 0000000..7980a82 --- /dev/null +++ b/sample_inputs/2022_06.01.input @@ -0,0 +1 @@ +mjqjpqmgbljsphdztnvjfqwrcgsmlb diff --git a/sample_inputs/2022_06.01.solution b/sample_inputs/2022_06.01.solution new file mode 100644 index 0000000..257c3c0 --- /dev/null +++ b/sample_inputs/2022_06.01.solution @@ -0,0 +1 @@ +Part 1: 7 diff --git a/sample_inputs/2022_06.02.input b/sample_inputs/2022_06.02.input new file mode 100644 index 0000000..19fe247 --- /dev/null +++ b/sample_inputs/2022_06.02.input @@ -0,0 +1 @@ +bvwbjplbgvbhsrlpgdmjqwftvncz diff --git a/sample_inputs/2022_06.02.solution b/sample_inputs/2022_06.02.solution new file mode 100644 index 0000000..895b3bc --- /dev/null +++ b/sample_inputs/2022_06.02.solution @@ -0,0 +1 @@ +Part 1: 5 diff --git a/sample_inputs/2022_06.03.input b/sample_inputs/2022_06.03.input new file mode 100644 index 0000000..0f12ee2 --- /dev/null +++ b/sample_inputs/2022_06.03.input @@ -0,0 +1 @@ +nppdvjthqldpwncqszvftbrmjlhg diff --git a/sample_inputs/2022_06.03.solution b/sample_inputs/2022_06.03.solution new file mode 100644 index 0000000..75fbcbe --- /dev/null +++ b/sample_inputs/2022_06.03.solution @@ -0,0 +1 @@ +Part 1: 6 diff --git a/sample_inputs/2022_06.04.input b/sample_inputs/2022_06.04.input new file mode 100644 index 0000000..38510e7 --- /dev/null +++ b/sample_inputs/2022_06.04.input @@ -0,0 +1 @@ +nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg diff --git a/sample_inputs/2022_06.04.solution b/sample_inputs/2022_06.04.solution new file mode 100644 index 0000000..4d0f277 --- /dev/null +++ b/sample_inputs/2022_06.04.solution @@ -0,0 +1 @@ +Part 1: 10 diff --git a/sample_inputs/2022_06.05.input b/sample_inputs/2022_06.05.input new file mode 100644 index 0000000..e1d0a43 --- /dev/null +++ b/sample_inputs/2022_06.05.input @@ -0,0 +1 @@ +zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw diff --git a/sample_inputs/2022_06.05.solution b/sample_inputs/2022_06.05.solution new file mode 100644 index 0000000..d4ec59b --- /dev/null +++ b/sample_inputs/2022_06.05.solution @@ -0,0 +1 @@ +Part 1: 11