From b419e68fb8cf74443c2da57714e2d0be93527fb3 Mon Sep 17 00:00:00 2001 From: Rarapony Date: Mon, 5 Dec 2022 04:15:59 -0500 Subject: [PATCH] 3 --- day3/Cargo.lock | 7 ++ day3/Cargo.toml | 8 ++ day3/input.txt | 300 +++++++++++++++++++++++++++++++++++++++++++++++ day3/src/main.rs | 53 +++++++++ 4 files changed, 368 insertions(+) create mode 100644 day3/Cargo.lock create mode 100644 day3/Cargo.toml create mode 100644 day3/input.txt create mode 100644 day3/src/main.rs diff --git a/day3/Cargo.lock b/day3/Cargo.lock new file mode 100644 index 0000000..4104d70 --- /dev/null +++ b/day3/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "day3" +version = "0.1.0" diff --git a/day3/Cargo.toml b/day3/Cargo.toml new file mode 100644 index 0000000..898e70d --- /dev/null +++ b/day3/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "day3" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/day3/input.txt b/day3/input.txt new file mode 100644 index 0000000..7eb32d2 --- /dev/null +++ b/day3/input.txt @@ -0,0 +1,300 @@ +pqgZZSZgcZJqpzBbqTbbLjBDBLhB +wHptFFsHttHFLMDQDFTbbj +fVfvsstwPHwNwfNGfHWRSnlpClcJzCWCzddSrddg +bdgHbZJHgMHgJgJctDtVssVcpFtq +rNNQqBSzTcBPTDsP +GWNNrhGnNnWNzRfnRQRbhCdqHMbdmbZddbmCmd +BSBDzrSwrqccDDwbfcBjsRwggClslTRWGWGMFlsF +dnhVhLJtzNZdgCRlsTGWCRJG +ZHZdNzptLNtPhPdnprPbbDBrSqrSQPjbqD +rlSwlrGvwTTSwSggCJGQJdhVgJGQ +jcrHrMWfNHNzQgVH +WbfjmBMrBrrmLtqMbwwsPTvPpwvBPFPsws +NRNcHzbzbMRcNPjPrrlBPlbtBl +CZwVCCpWggqprwtlHlssHtPr +WpmLghCVCqCnmVTLnccRQvvQQHDhNQzzzc +NvGTmNGDJsrCmCWPHpCP +nqfVfnFQnZQfFqzMZBPtppcBPPCBptcrbF +fhRSSVfqMZZhMnQfjVzShNNlLvldsNDdvvljGpllDT +JGRNWRGJbGmCGRbLmGpqShhcQpQgCcncScSQ +FFdtjvvpvVFnQhhnQhgf +ltvjjtjHlzBtWRmNPLZRHLpH +FFCJFsvgLsjLgWzJFWJgGwBDbwnbwlDddqffnjnlnd +pTpTMQpMZHQhZQpHPZMmTMlwhDNNddbnDqdDwwlbVNVd +SHpmrHPZHQpmvFrqsFvgCsRq +TtWpWhQlVZrVptJhtrtdbLPDPbjFbCCWCvFFbLSN +zMGlnlsgSSvjjGSF +msznlgcwMnRwznmBqTZQJrddhfQJtBJtZQ +mwTwLftmqqSHWfCfLHjWftBthNNNVrlcFRVNrNrRTrMgrRNg +pvJPJQPGPPzbpVpVlMBVchFl +bzQPQbQQdsDZPDGJnBGnPGnjHDttqqqqmCjftLCmWmfftC +ZNpfdHcccTfdwfMFNjBttMgMbBnvlvjBmB +QVPsGzhbszRLRrgvtgjWgljlRtgt +VJrVLsSrzLzGPChVGzbrrfpTSHFfDDHSdpZFfHpDTZ +NPpvDbmbsmdbNvQvDdWQpmWSnnQCLBnCcQSCnnLlwCBlZz +jggrtGTFhtGfjhDVjrjgMftFwnZcwwBCnzzVwBBwSZcVwLSw +JfHftHhgftgFJWPdPDWRPDvPJv +ZSLLZJGglDSVNDGGGgGgngGmHrfLzmHvvjfjwLhHvLfHHr +QqFWszFMTQFdFPMqBmWBHvfhCwCjhHff +pTsdppTMPtqqdbnlNVzJVbSSnbZR +gBqDccrrJDwmpTWHHTdWMPWWZFHF +RNfnfSwRjlLSWjQMHWvQZtvH +GRLbnzNnzVRLCqhwzwBmJrmc +CcGnZGnGlRncsspmFmmcmGRJJzCDTzjLBSDfqjwDDzDLDB +hHrNdPWhrbPdhPgVWvvrgWdfwjfNzSqfqjLqzfBTzJzJTz +HHQhhvMWbbdRswmlsmwsQc +rrwhpZPrccRpQdcFDJNqhtqtqMLhqfMh +lTtTllgbzTlJsmDMvbLbsf +VVWBTgzlzgGnngrtQRQRtCtwZRQB +HGnGvVdLhlFcmvPWmT +jwBLqZgjrtjqmFsQTscPQs +ZBNZtwLwztLpMrfZBLMdbdnfSRVVfnGbnfDVGh +LmBBBzQrBgBhmmggmtdVdhJNMHNdhsHNDd +ScSZbRplCcMnSpvCfCCZcpPwtJPNtHPHNVVNtPddwlNH +CpvpZGfnffSpnvRSSbcfScQBWrMWmjrmFFBzTGQWjMmL +sljSjSgsjcCLllsjVgSjCtspQwvNNhdFwFQvwpbtmhwhpN +hDqqWzGRHHfRrJnrWrfWfHBdFmBFmBbdBGBpwmFdFpww +TDnDHZrWWHhTjPClClSP +wGNQGQDGjqqmwHHs +MWvvrzgfsdWsvMrSdqJqcpgHgnqLFLnjpH +fvsPMsPdrTZhChNDhbhPVN +sbMgDDtttVvpMtcJsgcGGBBfGLBSLclQTGPS +CWHWzhhRRHjqRmSGPfBSzJfSBnBB +HjjRHWFWhRRwHNmCCRHhhFdNDNrdptMstJvsbMDtVptd +RnSwRsLsnSswjDDDBJPrJv +cpzCzlczHTJVQhvBQlDVDj +WmGzqTmHSsffqqnJ +vQSPHMwpmpQMLGfTPVLRPRVP +hsWhnncsJqbGjGfcfBMMRR +sqdNWqqghbsJslgsJqgWllMWDppSvNCHQHDSSHrHrHCSvvCQ +ZWWnWMmmndQZmffcdZcmssQqrsptVwwTtQHTCTHH +SvvrPzvvFDzGzTszpGGwHT +vrRLjjrPhLjrjPDSfdcMZnmdcmJcfcRf +HpqWhDJjzmcTSbmMBVBb +nCzfLtFnZZrcbcVVfTBfsc +FtRFzgrRtnRzrFwzDjljpjgHNJDlNlhN +gtNRRSSrRmjshHmm +PQDMwPwMppcQQcvCFlhLhGmjflctlnHGjf +QwDMFFdtwFDQJZZZNqSqJSqBgBqTNJNg +cddzbbzQflTDcDfRbcfbJVsplVsChNghHNsSsVpn +FBWFWjFFCjWPBSPPJsVpppPSVH +CrCwvjWvmqmvrBvFwZRGQQDDcGTcfbddZdRc +ZBQqdGLFmmzDmTZz +PvrVMvGgWmwSmllglS +NrfGnvWWPhfpspsGvLJBsFBbqJCbdQcLBq +DrwTrlfGThhQTpDdWSWgdgwLLgBSZH +bqbPRVRmzJCLWSgCzCLH +jRtbNVtNjNqRqsJtbjbMDQHQGlchfQpfsTcHpGHr +tMnRcnpDcZtpQDSCCsGGHvcGPGqGsr +mzJmjWJNlbfmbhzVCCPmZrCZqPGCgZ +JWhzjJBdWnMLZtSBTw +tvdLttzvtHLztnQpssdTPbMqbqMTdTss +jhSRGNjjSjhSDCNhRgRgclNjmfZTPnbTMqJJfqqsbMflTfMs +WnCjcjDRCChSNSCNDjNhGVDtQvVLHzFrpFwFrHFQQwQpzp +fLbLLLLQhVPhBVmDwmCfwsdwwDps +GNtctFTSrrJqGGpHFcTJFTwsslwmlmWsdsqRRCmqwdWs +ppctFTTSgHcSrGrrTGFcrrnhhQbPLbQZgzLvQQVVvZvLhv +mBBWnnBbBCtssmRThRDllR +wfwFQcpHFpddFrwpGcHSHdcjQZZlqqDTTjZqssRhWllssj +dWfrcSGFpgrSzFgMbCPNPLtCtVMV +llLlGLJJMjJMGVSvVMSLRRHvjCZtgZccttnmbCtdCcmCCztn +sBQNqPhsrrqrrwrsppsHswsZcmnNCzdZtbgntcNgcctnCt +WWFBBsPwpWPwBBHpFFrWGRMRLlJfJVMJRJLWSJ +vgMvQnPMntnSQPSgMvSMpNJfJDNNRpfZmGQmbDND +HlbjHHBLjCHGZGpfJLpfwm +qdHWqBbbbjrTzdqFqssvtPMSSFFg +TGDfDHSgtTzPPbnCtnNtVn +WQrWMFpMWMQbCVNPRWVWWv +pdpMMrhrprQshlMFjZpdjZMgmlGJJGlGDBmgmHgmJCSBHG +zWWBjZZjWPFFPPnBCVdsqmnCdSLn +rJvpbvbpGgTGrNJGGpRRhsCqSsLhnsmTVnSLTLHh +gNNNJDbpvGNfvNSDPPWQWWPZZWtjlQfc +RRVbWWWvvZVWmsFSsDNbHsDSsg +CrTwJQJpJpCCwvlJQTTPsfzDgfwNhszfszFhzFDh +ttQJtvjpPvcqTllJTPtPRGMGRGLWdVZLVZjWdMjj +NnPCTQWMMQNNNWwWnMzpHczzsZcCscddHdGs +mqRgqqVlLgqmfVzcGpzzSHGZcgcz +tjmZjZmhqftlJRJhlTMPTPQbrPBBWnhnnT +hvTQqpvTqjvhpjnCqmCnSDSFDWFFLSSSWDnSVL +tZwGgsfPcltgcZltRgNSDSSSSldmWMLWFVHd +GrZtwRPbGwwPcGRsZGtRtgQJJhCjpzmTBTvJzJrjvzQp +rwmwqDWwfDtztnFGBB +LPdpdVcdPGvPVgZsPtlhTTtthHBhHF +dRdCjvpCRpjvCMZgvLgRVJJSWMqmbwQJbMWGWQNbbQ +CMCcMcDGzBGPmBmznTNbnGbrswNTwTvN +SSHVWZphqWWJJzNsbnFwFVNjbz +flLQqHzzgtQdcDRB +mdzvFtllBgFttGnvfMwMVRRZCThSNZVhMd +pDTrDHjWWJPqjDjDSMqNwSZRZhNSRNCZ +jpcTpQPWLLpDTLcTrPjPDcjzzFLFzvgLzlzfvGFgfmgFzF +fQVVPzBpFVVrtrsJ +PldSLNSmWwMCcCMMcCNN +mSPlldllmPdRnLRwmbnLwmwvTjBTghTHQjfgjpZHpfHHfZbZ +pmfMcfprMqMrZZJcMZMGWTsFCVCTVPPsVTWCGPDP +vrvvvLRbBNNBbvBbjBHbQhgDslPTWsPTlFDsFTFwTWlDVQ +hgjznNBjHHgrhRHgrRLRnRfSSJmdqMfffzqJptdmmmdd +nRnPlCRPWPMFqwPLwq +tBGfbSbHtBVQgrbrqfTFFLvTNLLNGTGMLdws +bgHVtBDtqnqqlJRD +SdSJrHssFBSVsNtMMdRWnTRhRl +vcvfDvgvcwvFRlbnwWRlMhtn +DDDqcqFZQPgcgcfvDjLDfVrsSVrHBLJVpLpCSppGpS +gJGTFLTdrpLdBcWBvnllvlMvMC +RRqbbQhwNZZwQRPrSZWnvHSZWSvSZC +fQDNRsrsQzfbDrbsqwdtpgJVjdJdpVfJFLFF +DzWqFvqpqFSCSzGRGmwfntGjmR +cbhZNJQBtgMHJbJcNcrmfhrRrswmfRwnVrhG +bJNgbNdJBBPMHbcMNMWWvSFpDLFvCStqpLdv +sLsHTsTbRLRwqssHwHjFrPDwJDppzFDJmmcrPJ +BnZGBlMZnQSgSnvVSMmJzPDCzFcrLPPJmpDG +BgBffVLhQLgvnBRRssfqdfHbHdNT +HRPVmjqBqVjVRRPmcPmJjbDgLDDshbfRLlfbfLbhlL +rtTzSMSMFpTzfgDzzgsLfLHZ +rNpGpSSHwMTrrdHGNtTPmVjnGGjVjmBGmmBjJB +DBqDQDQHSFlHsFnN +MfLfwwLMWGLrWMMnpSlsnGJJlbFVjV +gRhMZzhrFLWQvTPqTPcvvh +NwwsHwtnFCtzcPdbvrQbBqclQq +VmZLLTLfVpwMBrVVqqMM +mgJDjTgWgLWDppJZJTWZmSRzCtRHhGGwHNzshGFFCSRt +RGCCDRdFZdRCMzzGCDGCmGHMfqbNNNLQLfFqnnqnNQqVPnQn +glgcrwrJjJccBwdSfnSnVqrqQVVnNq +jvtBsjstgstjltBcWzTGGddHTWDTZCmDGm +HJHGZZHnctSSDhZtmZ +MjjQFSvQlRjSdRqdqvVSqCCPtpRpPPDfDmfPbbpphC +SNsWqMNvFFqdqVMgwwBHrGHnHgcWTJ +jBcbjSmSBbbCcPcMjmbzFPhDMDfrfGRhGQRMnGQfdrDh +wHlqwlqpwZqcwVlqHtJVJLTdhndTDnhffftTGDTTDdTG +JNllcwpZZlpZJjNzSzSCNjSmFN +FhwRPzmPWmQQmwFPGGMGGRPnRHHVfDbvJlvDlHSvDTDfVHbD +NpjcpCdqpZZvwvJVfDdDHT +twZtqrBrBQBMBPGn +fBFGjbLLFblmbWFmVfBvrvMdMdncnrdNbdQNTr +shZHHRZhtsqJZhHhgZzgJzVJrrSSvrMdMQrNTvMNJQNrdn +szHwgtHtwPzPLpVFpVPLlfLC +mrsrtrWjljjjvwwgNnZfDHJDqTqrHL +FccMPFQcpczpdMPhMqJngNfqfnFgDnnFfg +BdMpdcDPcpjBmlBmVWts +VvwTTlfVlblwwSsbfTdzVqjhzVjpjjqjqpzV +rwCWFGmJrNCmMRHmwRFPmHQQhBLBzdLqBjhLBHZdQB +rFwDrMNRJDJFPRmCvcTcbDsvstTgfTsg +zhRzdRRChHCFGPDRvWRWvWvHpZpscrrmrZrJcmspJmJZFfpM +wQqLtQLtnjbjVnVjbBgjbBnbMZMZJlVpZfJprsMprmGZZZml +jQjjNBLLwjtQBtwwdGGDCHhNzzWDzTPD +DzzQnCMMznFnCdnFFlHtlmhVRtmVVmVhSF +PWrPPRTfLJJtfbtBfV +wsrggZsTwTTWGvDppQMRjjMCjMZp +fTjzZVTlbffCMvjgMpSFWBNBWSFsvBsNNccF +nJdwdPRQqGqbGJQbmmQQhRSBBBSsPPHWNSWFBtDNBsHH +nnQhwwQGdLqqwnZbpfjMfzpzLbLj +jgTgCwgjMgGLhvRrHrHwhvhV +bqSsSsZFZBlFsBlTSppVvVvnVHHvHnhp +qFlbPbFFsWFsBlFWbsbsmzTcMjLmtfcCmcWtgzgm +rrHbfBLbfMcghcmrcCzg +RDStDtvdZRQdJSQWWWdvFSgNvVcnghhmnnzhVPhczPch +ZtJpJttSZStwtttFDQmLGTlqMLqGfwTTGLfTGG +MrfLWwfBwgghvLmNvmHHHGGQHQSSscscVvTV +dDjZjDPJtFRzjdTTsqVjTpqHsGrT +JbFtlbPRJCzffBrgnlMWmg +ZFsbbVLLdZppLFpcJjCCQJlGcQCMZq +TwRtRBdBClCTGlcJ +rwBvBzDvwNNDHLHzfHssdHhS +gdhgftTNGTbpqJqjjgRJ +lcBcMLFzMzLFMzFzPjRBQjQPQpSqhpbp +mzzmZHZZnZwLhtGfddVsNCCnGG +lblbPGSGrTLRwqZLvP +FffCCFzFCWzzvmjRJnRTnZZNJCTqCR +gdhztVjhHMsGvrGVVB +ZJZjJGHZhDJRFJHjDZjhPNFgFmrnVmgVVzVBscnzSg +bwlWtMwtbqdCvlQCplmsqgnVVScnVgmnmzNs +WMWltTtvvCdwCCRPPfTHGcJDfGZL +svqQJLvSSZrZZZCFCBDPDCMTDpPwMWDPCwRw +GnlnGbdldjhzzhpPDTWjmtMwPmWW +HzVbGnnbchblbnbzcQTZBZrQrFSHvLBBJv +MmgMmVpcRDlvbvpHJF +GSGTLTwhwwhzQqTqwjFlbdvdbrlrbrrDnDvHlQ +zLNNNtwGFCMsWsCWNR +tSTDDDftSqSsTDnTtCWNrbFsNJJvbzJbvJ +dhRdVHdMGRgPJbjNPbzgvr +VllQmQdhRHLhhHmLlGzSqSQDDcDBnnBnqDfSct +zBzJWZBLZNNGLsbTvLbmbT +QdtQwfdnPdPTbsRQGhRvbl +pgtPgPjVDnpVnDtPTFFrJJTBCcpcrpCW +GnWMfBfdCGMbjRNpnzvvNLRNVv +FShJDJJscwwszNjvNjNNqZ +tJmccwlcFlFcHlPcHFfdrbBGBGfjCGTfBCPf +GhlcQsZNQZWhpcGhwlPmqnnqnjJjLRnqzJsJLJ +VTMtTtDTbvbMTfvdJqngjmqzdjmJjCLm +vHtbHTDBFvffBPGwLLZBQNNl +bDphJrpbpnBbDrdBvJdDFBMtMlfgtsFSstfGPPgggPGP +RZmNjTZQNVHQHNGSgMsfPlShSs +VmchTLZQLjVLjmTVmQVhTmwVrWJqbDqddBrpnWbvnqrqcnJB +jWWgThWtgSvSSWlJtlShllPcHVnJHPbMHPcPVPbVZrHM +fGdfRsRdNwfRQhnpcZdVhVpbPh +fGhwNBqNjqStFqtj +TSTBrSDlQlTDrrQclrBSLffPvcfcdVjVMGGPLjLL +qnbnbngFGhhhPfjjVffjff +RRWbmgpnmqlrCwwSrwmG +mZZTsdBZVZBZLVHdFmsNnCrCVQQbWvWjWNCnbg +QSffDGwGGrPGWrgN +hflwzltflDpMpDSllcMDhSShdsdZQdLZZdHTssZzmqLzFmLB +LLRJRshLfsJfWnLBTlTBlFzNrnrBBl +qmmVwmdHqmqGHZdHbbqSScdZQTjjpTFFVBBrlDrzDFBTjFjF +wZZwmcbvHgqTmGccmvdCLhCPJsJCPWgMLPtJsJ +TWbbbNbJJjJbqTjtJJjTQCtnGSBndMGCcSZSQwCB +mcfRfrcmrDRrPsdQSGZQGnsSQMnB +DDRLDRDFPpgmpcgPghpfgvRTjbhTVjHljJjzlVzVTlbHll +rPlPrPllBGgJgdJfHgfjJt +pppZVfFDWssMfFVVFMpsMMVmHCRLdcZCRtvLRdCtCJdHRttH +mDMfDFDmnMMmsMFznDFpzswbNbPGwwSGBrGrhrTzThSl +qDNFfCCNWLfWWhqhDGPMMZVwgpCpMbJwJCvV +RdstRRvdtmtPVpppVbVtrp +zzncSRdsTdQTczQBsLvvHNhDWGjDHNLDSG +bNNpcfJcCtNpHFsJsGGjLGzmLjLmGzlFGW +qwqZdnQnQwnhhzmnMWjmNlMzLr +qhwwQSwStJbHNftS +WlfWSwDftzRltBWVlRDlsmBJPcsZPmcJnmPmFhrn +dLQbQbvGTddTvbjQCbLbhmCrZZPPsshPPPrJZrnF +QgFjQHHbMvdRMVllSqfSlf +MDPJBWWPggVlPVDMSljdZNNpwjwbHZpNbDdH +mGmzcThGrtntHhthzGctRbNRNwRNzZwfdZpjpdRj +ThtcvvtThFcnqFQSHgBSVJll +hVqhFLBngHVFtJjtLCBJVSbbPNNbSmfLLTSNSrrLTb +vsdZZpvQdczlMdMvzlcvvdQprbGGTfSbWmzPTgmmGTbmmfGP +vgRZZMgwdgsQZdMBqVhjhJqBhJtRhq +bgFQbMMbTbQhghddFTFGnmSmsNdzHvzSSzlcHsls +fZDjVtfZLqwpqtCfCjCjlvqScrvzqHSzszzSnczr +jpftjCfWCjCfCRZZlpCpjRWQBRTQQbgBBTMbghgbbPGJBJ +VZZrbBVwbbbVVvgbntnggNRJqRRNNccMcNqJcJ +jfDPfDdGGhDGfGFPCcZQqMpRNJhqTcMc +LPfffPHGPDjPFGWSdHPFjWtlBlwvlwBlbtmLltsmvtZb +TTfJDfrJTSrHMcVMJDTfMcMDBQBPwnPlznPszFVBFgzFgnsn +CqtmWNNGBPzwbbwm +htdCthhWGtWWGNZqcZpJjwwHHHMcHZDM +VvjQjQCZLbbSbTPpSHtFzsHzppMfzz +DJrJWBcDcWJWmmcgGRGRGWGDzHHwzdfRHpMztMpfdFdFdzdM +DmBgGDqJNhGcccWmcZLjTPLVLTQhPtvvTZ +qfhvwNDQqwDGdGZZGwPTTw +STsJgsRtJMZPjlsmdpbs +SCTTHTWHNVfHQqqq +djCDgllgjJjDRRNgRlDdBgtpQHfhQTrLLrGBtzrQhpBH +SVcsMGcPSbqSPmLTPHHQTHrftPTr +VcWnsScqSScWcZbMMcSVGbNNlgDRlgCCNgwWvvRJdNdj +mgPllfRgvNmPGQGGsmQNWlpFtnBPFShncTFShtFShnjS +tLLzMJJwwbbdrrMLqLVJMzVZFnpTTFpnCSSpShCjBJhpThph +HMdVwbbLMbDMDVlmDsgtNtNRfgsm +hNsgsgzNZRghPhZBdssPQfzDmQSmmzQGJWzfCDJJ +bblVHvvHHTljwFCfGrvmfmmJBmGQ +THMMFVwqTPRdZptMBP +QvcPGSvQLjmcQWSGWWGjLCNhhqpCdBCNCbJNdVWpCh +rwtLlzZggLHnHlwHRDdVqBbCdqqVVhbqVnVh +zRDzwRrwlRlRTgrDtllmQGLcPjGLccFmTcGSQc +RWlgQlbcWBwzsJggTfhh +GrnLjHLjmLjjGSLjSDmfJJpfThhfSWJPqJqhwz +vLvDDnDNrCVjCmNDbFlBVZdVRQlRbWcb +mTlwFngwmlLlvsmLHmHsLJhJFfcbdpbNcjCNCbpccb +tZRzBRzBBRQzPqGRqrVQtjjfbCMcfMfCMMjVjfCJNd +SDBBPtZZTdnnwSvg +nddNNMMPNBnBNnBTQSShlSHghlDHBr +VcccVmqJsJsjlTmzTDggmHHT +VqLtFCqFJfVtVjsNgPNNMMWNwgtNvn \ No newline at end of file diff --git a/day3/src/main.rs b/day3/src/main.rs new file mode 100644 index 0000000..67d3d27 --- /dev/null +++ b/day3/src/main.rs @@ -0,0 +1,53 @@ +use std::fs; + +fn calc(input: Vec<&str>) { + let mut vec: Vec<_> = [].to_vec(); + let mut score: i32 = 0; + let strinj = Vec::from(('a'..='z').chain('A'..='Z').collect::>()); + + for i in input.iter() { + let string = i.split_at(i.len() / 2); + + string.0.chars().any(|c| { + if string.1.contains(c) { vec.push(c); }; + string.1.contains(c) + }); + + }; + + for i in vec.iter() { + score = score + strinj.iter().position(|&r| r == *i).unwrap() as i32 + 1; + } + + println!("{:?}", score) +} + +fn badge(input: Vec<&str>) { + let strinj = Vec::from(('a'..='z').chain('A'..='Z').collect::>()); + let chunked: Vec<_> = input.chunks(3).map(|x| x.to_vec()).collect(); + let mut vec: Vec<_> = [].to_vec(); + let mut score: i32 = 0; + + for a in chunked.iter() { + + a[0].chars().any(|c| { + + if a[1].contains(c) && a[2].contains(c) { vec.push(c); true } else { false } + }); + + }; + + for i in vec.iter() { + score = score + strinj.iter().position(|&r| r == *i).unwrap() as i32 + 1; + } + + println!("{:?}", score) +} + +fn main() { + let input = fs::read_to_string("input.txt").expect("fuck me sideways"); + let result: Vec<_> = input.split("\n").collect(); + + calc(result.clone()); + badge(result); +}