diff --git a/2022/input/day_3.txt b/2022/input/day_3.txt new file mode 100644 index 0000000..f82eaf1 --- /dev/null +++ b/2022/input/day_3.txt @@ -0,0 +1,300 @@ +FzQrhQpJtJMFzlpplrTWjTnTTrjVsVvvTnTs +mScqSqqgcfPCqGPZcfGNSvTNsVVNSjNvWSNsNz +fPcPGqgCcHgFzQpJJtHtJH +DZDqqlrjplDHrNCmnBcHBMCRcJzb +RQFLStFvdcBbzdJbJM +PThQtwftTPFvtTPhvtFtfFtpZZllwjRNlsqNqqZjwpGlrZ +pPwtqgwJZPJLgQqSFlqhFFlqMd +DBmCWBBDWTRGvcVRTCCnnfQlFSdlzfhfdMWQfjhhQz +drmBVVCRgprPtrZp +HznjQjvmzDMVrQnMLJMMlfWgPSlJGWWJPl +BdcqqhcdBRpFhhZBthhctdJSJJWfgGFlJCSFgbWPCDJS +NdRTZdNqBwqtthpRBTTRqdtZrsLQVzrrzjzDwDsnmrQrnsrr +HZFZCFzZWszqsRTBZTNMhmthVTmhDppmMQVPpm +wjvSbJddvrvlrvnJSJJvlJmhPlhVPVtGVpQDBVMpphQP +frbrfrcvvnvjfwbcJgrrCBRsCFsNzRgRCHCqssRH +dDFNqNqZqPLNqvqTTvCLSPdZssGHClJQJcRHJGHHcHBcsMsQ +lrjmWgWWrhjgrppQHHMQrsQRJGcBJc +lVlmnwjmdTTSvVFN +FWNFHvQPmLGwwwSHtswwln +RfMJcDdfdcfdddfZjdchrtZmSmCZVtqVnZmrnrtC +JMmJcfjjphcghpgjhRGzGzBBGPFGNBvPTpFL +cVPVwStmmcQPBQPpSCppwhHZNNqHszNBhsNRNjqHzj +MfWdDgvdbnvgMTWgvgZfzmsZJHzNhqjqjRhJ +MDWMWGndMgFDnFLDwQrPPCSrCSVrlmGS +QLZmPdRdWmMsMDWZmsLWWrhMHcHGzHvGzFcvrvzNrc +tplSbLVBlvHHcFNnSr +VqfgwLlCJWmWQTfW +nRWvlvRbtLvdMCPFGL +wrfsJNNGhNzGrTgDMDLgPMLPfq +wcVhJQhwhrrBpmVblBRGSG +HHHcggrZLcQQcQll +GzfzTRTzmmFMwSNSwdSJQtNLNB +TGbmLMFTzVVVTMzmFMfFPMHPZhnjZCpHnhgnZnPWCPZZ +MRwwpVMHRspqVqwmccDlDrcHBBZgBl +jQfQQQjWWFBgmcgDfcZg +hvvSQzSnQQSWWQWSjTZVTRMshwVCssppwV +pvrTvCvtFppCHMMZcdDFdcZM +wLjTQnqljjSnlwjqjRgLcHHHMBDMZhBMHgHcbBDh +mqjqlSNqRqwSRrWCvzGmtfTfzs +TWScDCqCQQVBWDqWHsHswwBgRJzRhhHp +dPttGrvFfGjMjnjvshsJgsJLgghRgH +rFMlGdtjPffNnnrffSNcVCDqQqCQRqQRRN +GmBRbVpPbmJcwggBBgWW +LjsTCNNtddjHqLLgWwccqgfq +nsjNjntNtjHCsDwZmwZZVmmGSvSD +bwDDgNFtMMDbFsMbFwWWVcRcSpcgjgQWhWSp +lfTJJlvdfCffccWppRjRlcSc +RnzGdJJmsMNnMFtM +bsBTFsqqTTmFZTsQBWWznWCRshlJNJlCVh +GjGnDvDjvjPppHwwpwgrPPClJhNVRCzhhzJWlWlhNlvJ +ffdgLrgdLrDjdfHPbbZbttcBbcbLmntn +TNTwwvTTHNtTHNLLVqtqTSZBJnrnhhbrFJjZjnVZgghF +cplWfRlzcWfRCZZhFrGjBfjZjn +pddzDsRpDcclzCQMWBvNSmTTSqdvPPvqwqtT +DQTttwwLtQtVSDMJDRmmSS +ffsWfvrBWrPvwJhPhPSMPMVn +WsvsggFvwNLgHtNQ +llBbVDMTlFVdFDTbVggSVsqZqZZZqqvNJZJRNRWgtv +HhpjcHHvjPsqCsWcNcsq +GfpvnPvwFDTTFFDw +GMmFGMGFFgVwQHQwwM +cJtZNtZTbThcZtcZJJtTZWJPllgNgpPvVgpjHvQpRpHQNg +hWcJZcnhcJznbcBZLqSLDfCmHqnqCLsD +zQpjLpnhnsHTnlQLrMCCHPFrvvCMPcHm +ZfgdSBtNqBwlgSDfZDwtqSFvJCvrPrVvFmwCJFvrmmFV +dfbRNZBqDtgRNBNNNljLLjhGRGGWGLGTRhjz +hhrnfBzhtzZgDgDnBfrfDZsRpMNCNNWjwCCfGQGGNGCGQC +lcdPmHLSPDSdFDpQMLjCQQQCRGpN +lJSSbmPdVdVvdHbvSDFHHPlZqgBnttzgTsssTrqgbZbsTT +FsdsShrgggLDdbSDsgrGrlWHTpfRpTjjfFTzRTRjBWWp +mPvqCmJCqJNnPvPNPCvvLTTVjHjzNWHHTWRBRVTWVz +wJLvqPZmJtccncvZmJqqrghDGQwbdSGdsgGgQgQr +zFwtNJGtNFlpnwHccZjZbcpprsmc +PWQfBWhBgQgTWQRLThBqMSVDSbbDRsVDmsmZsSZDjr +fvQfWBfLqfTqhLhCvNFttJlCwGrrCC +fNrGLNrfNrGjllRRRPmWVL +tbJdcFbSSssZSmmpFcsSbwDWVWBlllVPDnnjBFjDRnBF +ZZJcvZctgNmmvMGhQm +HhhjFRhgrcRTFLvWVJVQWJVHDHQJPP +GwCmwBfGzfSCzCfwtmtzzJVWSVJJZrbWQQQqJJDZVJ +mtfzpGdststtBmfmCwrGRFcTcvjngjFnRcLnpLLn +rrwjdwLgVmVwHrfPCJPQBCBGmPtt +ccNZqbNnMMblNpTlNpnhhBPSJsQhJtJtChPJqS +vTWvNcWNWTFvnnvcgjzDLVQLgHVwWDrW +jNPgbNHbfLJgLzfz +ShvhhFVVDShFVqMSSSvZfffvPLtBBBBJJlpfLJJv +DqhnShhMnZZwCSDCMhChrRnNrNdNQbHNNPmjmdHN +VQVZGQFnzFTSsBfgzgfs +rjlpjtDrtMLZPMtPtpPZPwCsgSHgMHCCmCTWsgBWSBmg +pjvDqLwrlDtwqtqNLvtjpPPwRNbQRncQVQddZhRhJQbJncbG +PsBSqnSdQsFhmmmnppFc +TRhNvrTCvNTHVcfHbJVTpc +rhtWvGWLrjRqdSqqLLqdld +vPhfqPJvrMrnffDDhvpMjdzGMLdLLQpllLGQ +mbmcFSScGbSCcQlzwQQlclsg +BSGVCmCTZWCGGvnvfZHqqrDhHN +GSRfrzGRhzsGChjTBBlqBgjgCTCn +wHQwtDVDHwHHDJcDWJZwzHZBqTnnBFlvjFgBqnljjvBdBZ +JNmVJpVmNtDHJWHrbfPLhbGhrzRbpr +WcWcbzNPbDwBNvWBwRMPQmJZQRQZftRZGP +LhVHFgggTHCFHhfMQQSMMGQRMLLM +qnrqppFVHphqfDsNbzjrzbrN +cwgDrdLSrBrvvhDzCljjTW +VHtVZpspQtMQsVRQppFVQVHtCdPTPTzdjvhTzTTPRvjjvWhn +QQZpMdJsQFJHtMHdScwLwLJGrSScSwqw +ZsjNflGfRfRPrZNRFcffLwJdwcLdDBnwzzzDznVn +CTGvhhTqbtbgTqLJWdDntzWWdnLw +phCMgmQGvvHCvMhbTQQFsNsNFPZSfZjffmNsll +CNpCJHLNhhSSHZPgrFlFFWgpFpmzjj +qQttDVDwQGdQGvqDQfwbcVrrlljjzzmzrVJgrr +nvMDsqqqQvfvsqDnRSZHJPPZHhLHLS +RNNrrPfDNRQwQhjscghMqs +WVZlHvnZqtlLVLvwjwhsggTstMhwTw +vGHWLJlVWlmLVqRCGCFFNfqqGf +MNzqCnvqvqvCVLBvvCVCpVcRssncrPSTWGrPSPdGTcrP +hmHwFmQjFlhtZmHwtZjjddSSGcsdPrrGcQQQRGPW +fHbbFjlhZwmtwhfjmmwmmLbpLqzqvBzLzCvLNRMbNB +tQfLrtQPrrfDSSCVlDfLSrmbBjGvWjjLmWWWpWNNppmv +wdHhRTTndnRThdvnBFGpNBMnpvvp +JdqTHTHHRdqzsJRRzTRHscJdDSGCfDlqQZqlfZrZZCffqSSQ +hQMWLsgGJMMhsCHggQWhgspDWFPzZvPvptDvzvmtdtdF +BrBlrTBrNRbfnjNQlZDztPvpmpppmzvfdd +jQlQlqQVbVcsMgMgChhJVs +MtFMCTWRFRRtCRTTRTMGJddjLdstHvBzBHzHVVpL +lZSDnbDlnZPrbHpzJJsdSVJpBL +nNghhPrlZlgDTFhCfMFJRMQF +RGpPFZPRQZPFRGvpPQPpjvpmhnnCMjhmhgBgVgMVWBVgVM +wLtfNdNHmrNthCBgCbhnngWd +srSfwHfszsNmtswlrqQDGQFDRPJGDvzRppRJ +GVFFGvVWZLFsmssFRNfVvmGGJPpJTTqDBvTpqlpDvqbBtTPl +gQhzzChzrMQhjpzlzWzJpPpBJb +ghgWjcCjMgCHWdQMhdjChCmfwmRRGZZGVHLZHRfmNwVs +DnDVhdnrfSfpcGGjQQGdJddJ +bPWPRbRsRMsHNzDqTZcGBcqZqmmN +HvwPvvzMPwDCChDVwS +vTCCvTfWFDTtRPMvfWFlDFHBqGLpLzbwBgWwqzGqbBbB +cQcSNchSJSZShVJNnZrhSqBpgwGHHtGwqtbwLbqpbr +JNnJVsJscNstNhQsjnVVNlFfMmTMFfCTfjFvfPRPPF +VLFBsgffNFNqRvbz +ChltjTdjDhHpHZvdpjjZhwCpbNrbSzzbrNGMTMMNSMbWWNSN +vQjpttQhHnLsBQVLsQ +mbzQgTzRVVbsVdQgzzVRddmztFGWNGNNWnGtFSGBsrCNWCrC +jfJjvPPwLDcHDPvDDPDppLCWCFBGWntCBnrtFcrFWTGn +wpJPLjvpTTDpwhfgzmVMbqhdhVRgzl +PlcqbWClLmnqZVLq +THwdrrhddhhfJJhwLJhpQnDVnznnmZQQnSpfpD +vrFdvGsGHhhhwHjFGrFGJHdMCCcNgbWMPccRRccMFLNPPP +tbppJqcNtJnZzRJbPFsFPHfZrrshFDjj +GdwgwlLgGCndsDFrhDHHFF +SSlLnmmvqWNqmcqb +ZPFPPTZpZSWzCMMSzPBsFvhtlQvJQQtJhsVs +dmNbmgbrwDNmbcDgwNdcwdLsnhlJlnvtsBJnhVQqqnstLB +bNGfDGgHHVwbwNwVfgmRMzCzzCSHjSRZSZCTRS +dDTffQdqQQLBLnVLLQvL +rrBHZZcgJcrLvNLtLgRLbN +cjjJhrFlhZwFFzwJzmTBBdmTsDPzDsBP +ClGrJJMNCrGQqlcPvWgnDP +ZBvbjHpSwBVVVcWjjjqQ +BLSbbwsHSTBHwmLHHLbBsSTFdrfvCrtmdzfGJzrdzGJddGfh +gljWRwmSjtJWjJtJjgjSZfVSTVVHGZSVHcVchZ +pBzLFQpPsFBGcGBTThfB +pFpQzFLPLpvQFQnLbsqqGddgjbmwRldwtWmlGWwj +PDQDMFQBMfWPvjdLLndLjrmsMj +qZqVzTRRqHtvZGGtVqTTzVjLLsrmJCddnLjrjHsrhdCr +GzwcZtqNzqvNqwzZVGRwSzbpWfFbWPlWFpNDBfQfFNNf +dfRszdzVdsjwdhLwCCqwGllHvPGPwG +SpJtBLFgcGqHQClqZF +JrttrtcTmSSLrmtBTrNgnBJjbNhhbhzRdsVdMhNjhMMhVd +MPFSCfSMqVSBGrtzlvccfQctzbzl +hZNjTHWWTZwshbLvmlWpBzmbmm +dRTTJNDNhjsJqBBMMgrJPVVr +WnVzDMjlDVWwwHgwhmgNhNNsJh +qfvrLNCcbLdvpcvbrPPqCsGhSJGTTBspTshBpTBBms +ZLvvZfrPfPCLbCFFzjVQzRnNNMVzDQ +nllbFTTpTFTBcnCjQPqQdZRQZhCb +tvWszrrztvSmzQQvrDmZRjjjPPDVqPRdZRdCPd +gfzvSsftgQHQHgQl +GVbHRRGRLpdmGWTm +gSPPltPlrlvccFccPlcJNCTpnnmpMCLMMmWfdRmMSS +FzNJRhhvPFRvQwzqjqzBHZZj +PhZSpFBPBFsNmjBVllltBj +JMGLnrrnbfffrdqRqPHnnqLDVTDDjgmRgwtmjDljlDVlwl +LHMqPqPnnqGLWJPMnndrGfSWppzvvFSChFFFvvzQSQZz +RSWWssbvnnCqZnWsRCnssWrTggNhgbNHBgQjhhQBgjNT +mcpzcppzczcDGVcPcDLLGLjmrMNTNtQNHhMHrQBQNTgN +LVpPfcjjWvsFFnFf +MpddpdCpJdJlbdMvBHMnnsHqSRvG +PWvZfFmZrrfmwWwFznBnqRRSGcsBVmVBRG +zjzzhQPQvzjLPQzwffrwrtlTCDtJDlgJLltpTTJlTl +TvTWjjzpznGttFFZccrrPrSZllcB +gNNSqHMqsMHQJHNZCDDCZDqLZdlZBD +SMQNSRNbRRHwhwhsRmtnvWVmmnbGnjmpGn +ccSVQjCQddTsFJcH +gLppBfgfmvCRFdsddTJJgb +WMLMmWGGBZWZLCtvDhlSSDGlwhSPSzSP +TpqVGVHFQGmqSqPZdccNCzzhdwCjNG +fffbbvftMrBMDDcCccCZCjlvhCCd +RLWMnbftDhnMRtfBftRJMtLMgFgHmmpmPmSmmQFPPLHHVTQS +nRvwQSDNcpVJJcJR +qZMjBhjhZMMBzLBGLGrjJbTPVTpbdPPdVbVb +ZZpmFFZlfGqfmmGMzlfmMmnWQDtHtSvnWWNSHSSstFtS +bFDGZjGDbbRSgLtN +CphJVfJWCTBgvfLHNRcwnt +WVhPWBTzzChzhhhBmrpPPCJZDQtdMlrjFQdrFqsjdrQsFG +ZBpVQHHVMMWWdmmLWw +lQhhrjcRttrqbvQLNwdDWzmNSDmStz +QbGqhcbvcsqvCCHnsCZHCnTn +tlWtQTTTJjTQtVnmrbnPWVShVC +MDMGGzsHcwFgGZBqrmmPSnbqVmNVGC +sZFPwHcMZDBRTlvQQJttTQTR +FhVRfGptMGMnZhRFBNRBCCNHHNvTNTRC +zmwrLLSjrbzmNlcvvrHvDPCN +JLwjQdSbjdbSdqJQFGVqFVMgnGHMfGVV +fffZWrJqZSHWTWHqSvrgDhggzRjttsDhpDgs +PGlBLcBBbnnbLLFbGLBjRgjFTFVzshtzpgsppz +TGCPnMPQlGnPmclPlnnQmbmHJvNvfHdqwddwvvZfCNHCfW +ClLwpspTPrTFZCdzFbZdbQ +RRMWfRgWVRMRQBZZScVczVGFbjNb +MfnvMqWmslvDhQPw +hdndSdqsTddBhdcmmNHFDcqHttPF +JjMzzMZQGwZGZJzMzZJQzGJFvPvNPtFmvmNmDvcFtvDHMv +gZwzQwJfGVJQJbGLBsSTSTdTbCWDBSnd +ZZCHZRzMZGRMhMMVVFNThrdd +SgsccSPmmgqssSlqsgcmscSqlhpFdVThjphNrdrhjdwdhFJN +vmttqTcqvLqqmPccmqSBbRWnWzQZZZZBHnQCzHDH +GgPnGdSPBpGsLTBL +rVNJjmwZqtZZshltFTtvRFsL +mqmWrZVqWjrqZMNwPMQQbsddgdsbsgPz +LZLVvjZrggHLJggSZDgrnPnQnRnppVRllntRdPFz +chMCzbqGmhNhhbBCMBdFnpfqFnltRRQnlPpQ +TChmWcMMTmBswJzZZrWrvzgg +gngRNBNRBsNFFBgfgbLLLnqdSLvLTcbLbd +GWtlChlVMllcZSDWSLbdZL +lljjGlhMGrGJpsFdRJfsfzfz +jVTdrnGQcQtTTTFQqBqsgHHFgsqf +ZZLbPLzDzPZCmsgqsBHt +wDzDlPblRDPLPvhvwtdnnhdrnrMGWMVGMThj +spjjpjvjpjmQjrpCMfSlfzrPBl +dHFntHWnnbRVFtnbcqHFzBCCCPzfPMlcCSlgllzc +RLbVWHnnSWtnHFbdbVRdNNtQsjsQTjDLwmGTmTssQwmLGJ +JbJJSLMhRMSLhNqqwFDwFNcFqL +GcpnGnznnpzpzGpffNTNTwTfwdDNNdTFdD +nllnlPGWQWHcGpzzQGGzGvHGJbVVtJSChQVbmtmVJrmrmbRm +GFsFrzwrflmtdtbltG +ggLPDngCJncNLJRDwgnllmJqjWMjhjhjWWmWjj +nBNRNPgpRgDLTgNwfsSHVBQHVHwsZr +WwvnvWvcFtwtSFSF +zBZZZRQSzMBSgSVJGjGTPTGFzCzmmj +fZDrpZZfRfMgSQDDBhgQghDHsnbrcNlWnnLWHLrHsWnllc +ZVncdPPwVPdhZngnqHWHNNvTHvlMvn +fSLjjLSGGBjTTHqvBqrMNT +RSSSDGRtSGZthTTctmtg +rtzrfJbgJHRfGRZLPR +hdVhlllmFlFPLwHmsRGGZP +nTWhRjTBTWlvNQgnJSSbrJtz +JgVTpBpfvgpTDDJFJvTgggtlFlNNMRLNNzNNZRNHMRCLlF +wbPWcSGbGqWDlnNWMMMCLMWZ +wrsGcbrcbcqwDwbcmGvQBQgTTsdVJgJsVdQf +mztrhgJtDrhgcrZmnhbnzbhcMTMPlBCPBGVGTMVGslCCPGDs +FLRQmjjFSQpQwLlPsMsCpvslvPCB +fNLLwSdSwWSWjwmrtczZhhrJzdzh +HHwCwJFmHZttZCfCSffSMHcVDMcPBRPcPRDhPghM +nvQLsTnLslnLvpzGTssnsRPDMhPgVPVgtcVMRPgVQQ +vnsTGWlTLsWTLLvNsGWlsZrwmZCJddjFmtJJNZFftj +hbjSTvSJTfcSwcPSPfTbfHszVVFpGnpJpsHFnHVVls +rtZrcQrRZZQrmZBQlCGppnppHzpVFCGR +WmLqmgNtcLNQWTbPvfPwbbdb +HzZgsdHglHlzdHsFtsNNJSlNcSpjcjlrrNVv +wqqWRPPqwmbcqPjQVvSPJJrVpv +qqBBqmWRhqRLqcBnhzzztgnTdDHnHsFsHn +rJPFVwwsrJwmdVrLWJvvRBWBvbzWlb +nDZcNGNpjTpHncvpZCDnTNZGhlWzQhWbpRRQlQhpWWSWLlQb +CDNntnCCHnvmqPfwtFdVqd +gqBwgBjCswwgqNBNCVDDTVdhlSDTDcZc +HvRRFMzRRRRMpHrtTllfhZHHSShHTf +PmlGLPrppMrrmFFmLMWRjbsjnsjwQNJWnbQjWgBN +pDggpFgRghZjBFPPnPPFrt +cwTfLwBVwCWbLcVTVVvrdndGjMHrnGJtnttdMC +NTVcWNvcBSpgNqspRQlN +DLDgFlDmNZfjfnJZSF +tctvttzvGGzvrHqtVVdwnJGSSnnjjZdWTdwW +zvpcrbpHpqJJsPbPlLlhmhglPQ +pvHHvssFCFZQNCftttdQdd +VgTGTTVGgLjDjlLGzgPVMTNwmcwQmMQfQtmdcmwMJwNm +TPjTDjfGWTLLljgzrWpZZbsqrFqhqbps +ppVLcfcwSLgpSLVLgWwtfshDNDqvWvGvlQZvDNHQHjqq +MPrzmdRrPPrCJFnMnMRRFRPdqqZQNQvjvZDGDlHhQvGNDG +BmBMBBJTMmPBJMMFCCFJRmrsTlVpVbpwLSVwLsgcwTVlVc +SSGzmFRzmRGLgSSmGMJFnvfvJnJVnJQnMl +cBpjHtjwNfcpNZtppHtCMlMPMlJBVlVQlvJPvJ +dNtNZwqWfqtqZWtHttsqHqrRrrdRTLbmmzSLmTGGmbrg +RrrddnrgnRbbgWdGrfnwgQwjDjDpvTpBQTwBPP +MHCStZJzSwvPjWQD +mcJWVHCCLcGLbdcn +PlMsdjPdGMjdPSrSjgddbLbmHHTszHZzpHmsTFvmpzZzmN +ntRJQVRfcQhcQWhnchBJWntTFTTTNTSpFtztmZFDTpDZ +hQfcfCBSwCccVJhSJnrPPGLqPlbPLCrqldgb +vgvWDMZvGpcqgqsP +tSdtjLHLQLHjdFdDddQSQhwlsGqwQlqqqhQsPhGc +tbRjtTLFRvTZDBrMrV diff --git a/2022/input/day_3_sample.txt b/2022/input/day_3_sample.txt new file mode 100644 index 0000000..f17e726 --- /dev/null +++ b/2022/input/day_3_sample.txt @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/2022/src/day_3.rs b/2022/src/day_3.rs new file mode 100644 index 0000000..80e31b7 --- /dev/null +++ b/2022/src/day_3.rs @@ -0,0 +1,33 @@ +use std::collections::HashSet; + +fn get_priority(c: char) -> i32 { + match c { + 'a'..='z' => c as i32 - 'a' as i32 + 1, + 'A'..='Z' => c as i32 - 'A' as i32 + 27, + _ => panic!("expected letter"), + } +} + +advent_of_code_macro::solve_problem!( + day 3, + Input Vec, + parse |input: &str| { + input.lines().map(str::to_owned).collect() + }, + part one |data: Input| { + data.iter().map(|s| { + let (left, right) = s.split_at(s.len() / 2); + let right_set: HashSet = right.chars().collect(); + get_priority(left.chars().find(|c| right_set.contains(c)).unwrap()) + }).sum() + }, + part two |data: Input| { + data.as_slice().chunks(3).map(|c| { + let second_set: HashSet = c[1].chars().collect(); + let third_set: HashSet = c[2].chars().collect(); + get_priority(c[0].chars().find(|c| second_set.contains(c) && third_set.contains(c)).unwrap()) + }).sum() + }, + sample tests [157, 70], + star tests [7908, 2838] +); diff --git a/2022/src/lib.rs b/2022/src/lib.rs index 6c5d06b..7118f99 100644 --- a/2022/src/lib.rs +++ b/2022/src/lib.rs @@ -1,3 +1,4 @@ #![allow(dead_code)] mod day_1; mod day_2; +mod day_3;