From ab9d8fb2b1396fb515f20f5c8d227a7a5bbcd47d Mon Sep 17 00:00:00 2001 From: Dory Date: Thu, 7 Mar 2024 09:51:55 -0800 Subject: [PATCH] d3p1 --- day3/Cargo.lock | 7 ++ day3/Cargo.toml | 8 ++ day3/input.txt | 300 +++++++++++++++++++++++++++++++++++++++++++++++ day3/src/main.rs | 32 +++++ day3/test.txt | 6 + 5 files changed, 353 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 create mode 100644 day3/test.txt 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..fca63f0 --- /dev/null +++ b/day3/input.txt @@ -0,0 +1,300 @@ +qFdBBvtHHfvRlfvsqldvqjPpQmnQmjnjjjTRTLGRNG +ZCWhhCsJCzSJzSbzgsmPTGNNPPNGjgLTLjgn +WJZsbJMwJcszJcScwhVltFwBFBlqddvFdHDfqq +crtTsGTtqFThGQGCrsjTwdNJwpRdnJJwffRClpSf +PWVBPVHLvHHVgvZWBzmPpnfRSJJRQnSRflRPSNSl +gmzBzDgzmZQWLDLLgVmDrqGhsscrqDMGhcqtqcFr +HsbcdVrsbVbcLfPqqQsqqtPj +mMBFzZRnmFMRBDnDFBGZDGdDqLjtdQtPtgfPfttgtqgq +BZvZZdJMBFdJhSvhbhchcHll +GNRSqRfcNTpfGCcqjfzBpDQPWBzgDpQsPWzW +rrSdnVHlbMdLdBDzgtBtBmQt +rbFwwnLFLFwlMLrFwFhMVLrGNSTfZTRhfTqjGJRRZTCNcf +QWTnQCnWNNWmTnSPQwmqDbcscbpcjPjVPbrjpq +vJhzZNlNNgdzgzJdlGzHHcHDpjsHqrvbVrbvrD +RzRdRlhLgtCwCWSLnN +SFTJFTTwTVVSJBnSTdvNNfWbZCZWNZCNNhBv +srLrcHDcsjtLcLLcrLctjlcvbDNhmWCvNhZWGZZhNvhZmb +rclgtMPrrSgVTgJCng +DbrhDzcDffbzNbZvZWSSqSTNSVWv +gCPltPmCPglFnPFwtGPhGPwTCTdZZWZVRvWqdRqVVdTdvR +hLBhlmlstcffBzrpfj +wFLLmhMfwZLDwmMNRhZwRLDvJgldbJHPdQvcQHHJQPgH +bjrVrTSSJdQHcVll +CGCSsCCBpspBrqbSttpbqWmWZRmfFRZhZMNNLFqFLm +zWGjjBHGjzzTWMjhtDDWtPPlJZPJpvqQrmZTqQQpmr +RFbVLcBVLRcRVcCsCCqvpCZqmplqQJmPrlvQ +FLNRRSSRgScSVLLLNdFdwjHjnftBtGMgMjzHgzjWjj +znVSqnqbqzSbzTHqDDZmlcFcnhDMnDmn +LtjsvdvLJdjfFwRRCCMlChwCpMcclCcZ +LgvjjfjFQVgNTgWq +SJRJRFFCMSsGRMMwtZJRCVTgqgTVgTBCVpjTjmmWlB +ccvnnpnDVqTcBVTV +vPHprdHdpnzHSMsSrMRZJGws +GddGrcGNHnGvnCHddvCSWqTSWsTwTWShbHlhhb +gDPzLRVZgQfpRRFQDDVFDfzhSzsTBqqqnqbhnWTSSlST +QVFfFgRQQgLtgffZRfpFPfntjrcrjCmtCdMMmjMdJJJNtm +jjmNcpGCNmDqqsBfnZnGGGRLsZ +lrmlVWlQQtWllgtbQVrWBnZsJgsRLfZLhZBBBffL +rWMVQtrFlbFlSSMHVSdHHNHdcdDcddzppzzm +bTpjpjcVTLmphbLppJwqzqwJLqqzzzgRLJ +sdHNbrvNHrqPvZZZPRww +bNQCrCNtNsSlhffhVhpVWFCW +lpNnpMMZZDbNbnBjcrbjvScFmbGj +wqhdqVqdscrjdLsv +HQftVqWCfhwqtCCjWwfqzzVPZRJQgMlggZMMMZTNMNTnNRTN +fvvGbFtVmtTwgtMT +WcCcClzPCCcczJJScPWWZzBDmwbhBBHSghgDDMTHMDBD +nWPljWzZWnbcbRsNFjFFdFdVjFsj +NQrcLNmQGRfGLHHLZgbbnpjZJJJndbgnlv +DWtThDWtzzhltWTwjbdpvjbgqjgg +VtSPFWtBPBFSFBWCStshWBmlRfHfMRcfQLQLLlmCrCcN +pbmwqJnqSJVwwDPCjZZzrZfD +QtssBTvNdNvNtQvQGpGhdjPjDjczZDfjhgPPDcgjgr +GltptQpMGNNpRWlWFVFHJFHLWH +ZLLsDGGVhZcQQLhrLshrVFwHnWqJnWMnJJJnqfWfGn +jMlPdTlPlgCgFpngFWFnJfpw +TlTNbdSSTSTmTjPMTCdBPjBMrLDczsZcNrDhRNDRQRLLRVVz +HDLpBqDVVTvwGDDNRT +PlVWjfhsPMMmWtlFNTrhrrvCCCTNNbvw +lsglfgVJmsfMjJfSqSzdZnLgqcnLnp +pfCDJWBpfDffpJLgQJzzVzNrgNgNgNhNzmVr +ZnnGZbGTPZnsnRFdTlbrwdrNzrrmmWwmwVwttH +GbPGRvTnZljWnpqSMMCjqJQSCf +ZgnFgwggznFrfrwfHhNMMr +pctLCLRhPHBLMLWfBL +JJcdJcQCCJmQJppmlgndnFslsVnsvghZ +WpMgTppWGSWWJmJDpJcJJhqm +zZzjZNHvNjPvNsbZLbRLzsPcqhVJSVttdwhwmdRhtdJRVd +sLbvvCZCPSSSbbPfNlQQTQGBllCTnMnWQn +fwbwswddwSbBfDBggMBPDPhHcPWDmhHhmWnWPC +FQFlzLCzQTlrTTzvltFqFrmhPHjnhhnnchcJWcRRmRRq +lpLzlFZzCltrTNlTztQLZfSMGBNdSBVwbBNVSMSbVs +FMmgbTFdgLSgFQdjrRPrQBPDdj +ZqqWRvsfGrrPvvPC +wZzwnqccRwRNNpRSMztSMMFbgzLTFS +qTwBPfTfqQDMDrssHdvtRHccHMjR +gWSZGWzGFhnFFgnhNsRHtRdsVjZcRjHs +jgplhpJJFgnDrrwfqprwDP +CWhMSRfWhVVnRSZnVVdsLQqQMzGqLBvGMQqczv +PHbpNwrjJplttvcclLlQzzDszc +NrJbJrFNNJNPrmwrtbjtNmCfSWfWhSZZfSWCsfShfFVR +VLhRPLGLRPRSStRRLwfGqfmDwbmqbqqDlD +rBSFvppnzTbwDwlDcFWm +MJrnJTMvMsrTsPtshRNPZdSLhL +BZBrRCrnCQBBnZfGqhGGMMRcthMhMG +TLjsCdDCPTvNssjdsPsDgsgqGcPHczchtHczWzPWzzlWhG +gsTpsdNbvNNjNSpsNDTsmCnSVQFmSFwZnQBnmnQQ +llbsNsWrmbrGbWCNtBjcCFBzQFZBCFjF +LdSpwgdqSgzwJdRdLMRHLjQQjHjFHctjHBDTZj +gSppgpSJMhpzwrhblfbhhlWlnW +DwhTvvsJZWsBnDzPpBLbFp +GHtNGRGNdzbMBBtmBt +NljlCSVSHdjGSQRGlCQSCswqfWzhZfTcfzcJvshJ +lmsGNFsDGqCbFQBbffjjwpzptw +hRQdvdrvrvSngWnvnHrTMfzfzRtftzwVTwwpzB +HnSSWrvLJvWJGFDsmFLPDFcQ +bwwpGphpLghpTvpWphvJlFLJqqltjSjVlSStSR +cmszZdDdBZzcNcDCDcNsmNMcqVjMJStFRJltVPVrlVPjVJll +HcdmcCzzzQcHNcsCdpnGnhwGgnRggHvbbR +CfMBbwBGbMbDCFrDvhFFDT +mjzRjjRdSmjPnzFZgnnrTT +cmSsVcHjLHTwMfLBpBpBwM +whqqfZzgHvhSzzVNVDbpDbmbVbNpJD +GcQFntGTCCcCTMCTGBlJsJsDDWpRbWBsJpNS +FnPcrGFFdddMnCnTqgqgqPHfLjLqgSzz +zMSzzjssFdGnszRtNftqqwFHbbZw +RRPLVrgrwHqBqgwt +rPWmLCTCQlCQQmmrWLrQShJshhzdhhJjcSjlzRds +lvgvCDfPqLHppqpCCDJncbntttbBtBBVHjwtrB +TdddszSQsWcngjzVbcVZ +hRWsTRTGQhNRGhRTFSWmlpgfqlvLmplPqvvGgv +LbWFLQdWWPwWSjSHPHRfppHHDRpggR +zmqqNNzlzmnzzNCmVCmtBzpfGsfpBgDgspprcfcfsrRB +qNNVNJtNmmmNzznVJzvCTDZWhvZZjZFbWQQhFhbZSw +DjdHqJVVhHVZjhDHPWtDtZLFBRBFmSRTFSbwmRRTffTTJf +NNznnGlgMQsnQzNclzpfSRSMRmfPMmFRwBwB +vzrcGcNcPPvHvHPt +wLCcmZwWTNtZNdMSMGSCnJGGMB +RFbHsPhVvFPRjlshhrnQnGjQGSdSqJfqnQBM +HhzVlFHhPwzScmSTgL +TNlBhDNvNBFpJgpPPpDQ +jjfCdCZZqsCZsbdqPgFGGMRzSFMqQMRS +jnWPtWssCtWcmZbbtstvnrrvhVBhTNNhBHlBlL +DZwNWPDzPVWbJngrQjrNnrQcMg +GRRfttLBhhvTvmLmFcFcgFFSnjWrnsrG +TLthBWtTRLHqhlLLfmhBqVPDJVdPwzJCPPZHwdDdVd +GGVhrVSMQwQqfVssVvnWFgvgWn +jtlcRBBtQRmpWsjzFCvzWnvF +QPcRbpppDmNDtPPblZMfhZdDwdMrqSSGrq +ZRrdtBdQvQsWnnfWFZsF +bJLcMzNDLbMgwfnGMWFv +lpvhmzNDmDmlNbzbmrVVPrHRCPHQBVCP +rZllQrsRWrlQswccMVbGbVbTdcQQ +NtJCntLSHCjznfLTcGGGqWMdWM +jCtzzSFthhSSSjPJrFDlvWrlDZRpwpRZ +mQmbLjbrLQjLmTtwwWBTTvWjtt +BHSqdHclHHNFlppNqWPwfwDvTfDPPtCw +ddSGMGHcdcMhMZnBbmbZmgGJJg +lvvBzvDnlzjfPnfjnQPlldRbVbRqbqqCgsqqVpQQgVqc +NNFtGNMtTNFmJNGNZtZMwVRTTcsCpVTbbgCbgRhscp +FGNGZMtNLWmmJWGFWJGLSNtPrPnBfDzzvjnDBzpnvDBLnv +fwvQRFQvQqwpwNJrwN +BstDnBjhjBhnshSptpJzWqNppbfr +CsDjCdZcBCDcjnfDHfhnfggZMGlgQVmgMTRmgVGMMl +MwlBVqVlsgnmzwJsvjhWZhGPvjvRRWzG +QNQpQpftHdHHCHGfSpCrQNdSrDRDhchhjvjcPrRRWrPvhZjv +LtLSCTSGfHGdGwswnqsggssTqV +qDDCHjzjznTvWshZQWfnZZ +PFFmmNMMtNMVFtczcFPJNrLhZwQZQsSvvSvWvGQQJQssss +tFzrrPPNNFlzVrpRTpblRDqjTpDC +DWDrrBdpmdpBrCgDthdtfcHsqJsCqscqwfsjzHcq +TNLNFNSTQNQTSnlMcczVJjVzsqLDDfJJ +TFPZQRvvlMSPPtRWDtmDRWrBGr +LWGVZdrvWdpLGWRsjPMsHmdHdHldlj +zJzznChzzzCSfTgMhCPDmlDCbmlsmjDDQj +nSTTJhJtnShNtzwhgNrGRRWZZRvMWMtVrqGp +PbPmtNmBbPlqBvqlDJBT +LpGVDzVpVZqqSTvq +pMnWGLRLRppnGpGndrGPtgDCjMPmbPgCQmPPNN +sqcZcbZZpcZspcCCRMmznWGWdLWhwDRGTTWggT +NjFSJgVHrvfVtrGzWdSznDwLSTLn +jFrBNVVjBFNvHrFHBlBFFpMslPgPcpMPmcQPPZCgpP +frddqsThtsTfTbPcvhsrbsRLpRBNRpmDpGmRGcRNLpGp +QWJHCJwWzlHZQZHQCJJRzRqnLDGRGpnGBRnNDN +CVwHCClJjQgWCZVZQgMwSdthjrqvrSPPhdbqtPhs +TvdphBBhhhCgdLNNJJJLWz +fVcsqRVrPcnJWgDnJN +JlqsRJtssZwqwVtPwltRPsHHbFTwTFbpjHhQjTQbvpTF +cQSnPDDQJGNzwnNpZb +RHDrssVRDHRgsRFHRlrVwzzpNGZlfZdppZdwGNZb +sHCHtDgtCjVVLFChqPMhBCMcSTqB +hdbQbqcCCQcqFbCbVdcWCQQlRMBtGlRHBtBMpHhpHThZMR +LLsSLLfgJPrgPnssnmlZtlZpHGHVGfZVtZpl +PvmvgmvvnzmrSsSLJDqDNzqFDQdDwzWWbV +HNNjnLbpLGHvWJDhdWWPpWDW +lVcSNgcSVclhRlPZPRCDCR +cqmSQrwwrrVSrtQFqVNmFwjQnvjHzBbLLGjfjzHTzvnH +QmvWVppPHQQvbbvmSHSpPzfzwnWMTZFFzwFMCzLnwT +jGBljlNNjgDtGDrNjjtjqqDRnMzRLnFzCFnMfRfMzCnttF +jqNrrGdJcdgLjqDqBrDQbbmhdQQmmpPbphmbVv +ZHQCggVHHRDWvbfjGptVtLvL +nnFwnwrDDMShnhFrFLLLpjvPlPGGtLGb +dcNSMhrrTDCBCsWgCTQW +HqDDLGtDdCnhfDnwnV +PmlJsJTPlbdBTzTnzhnnCCWWzV +lSPjMScggsScgjSMMbqHLFGrRLGHRZZtdrcG +ZVVtNNppdZSdLtCPqnHhqJJFtb +zgwwQBfwmGgSrDfgrrGBggzHCnbJbqbCJFnqhHBhnHHCqJ +rvrzfmlRrgDgmrzfggvwzvdjjcccLjMjVcVcsVLjVSZR +dppcLRHpphchhNhSddjzHzWQWQLtrMsrWQCWCsMZssCZ +JGfBfJJfBqvGVlVbDBwDBDBfZnrQsMQtssMttssDsQMWZncn +qPVwlgPBmjpPhcmS +zGPnzBgPzPnPlHZlDDHnZBNCvrtcjcjmMcFzNcNFmFdc +qQpfsLTTSspqTfJdmdCtMjdtjvJcmr +bfQqqSrswLLrfpLTqprfTnDVDVBBbgHPDHnhDPgDbV +JssTnsdFztZLdNJnNtTsLNZGqlbGFBqrGMHqHBcFBqMFMH +CCgSfgPSvSfhpShSRppCdfrlqGHGGcHmclmqbbqbqlPc +wvVSVjQSSQhRVvfQChvZZsdtJstjLNLZDJnLss +CmfNNNZNqDrnDjMhZM +gdczzGtdFcddtWQgGGMnVhnjJwnrJFDPTwMP +dlvcdzdHtzQSLRSfmhLSqv +ZpFFLcHFZZRRmJVZgD +PzhrtQntzcrjCRJtbtRgBsBRVR +zdzWfCzhQzlhWfWhlvpFNlpSqcMSHHMv +NrrMgMhNQhNjQrtqtPtwVtZpggPw +TfRLndnLFCRFTFbbRDHwpVqqBBwsHwZsfH +TJFRdLlRThrlcvZcvQ +scrwRVjbQvQBzsBC +gMfVqNnVmnCBQDTvdn +SMqhWqVlmWSmqMVRSJjjpcFrcLpJrR +HtSQHQntHsHMrtHnGfHQVVzLvSBSVvVVSFNJzzVN +cmPRmpqlpPmcgTlTpjJNjjVDvDRFNVVBFD +hlmCpmqmpgqpZTlcdQHFQfbHHZttwMQwtr +VpWgbgfwCjbftwVPPpGQFQhzTBQTBGPzqFTS +dbRbDcRrsnsRrLZmLRDZldDZqTNTGqqFFzGGhSTNTFTzNmNT +MlLdHlDDHrHclMMrCwgHCCwWwCbCCjjg +GGNLhfDMVcVrcGsT +jSJQFjHbwPFSvQSHwZFvHSHrqCCrrTsqBwNBrcBNsVTsqq +QjZSjZJZPvNRZJQPnSZbJZRWLfnmgDlmhdhWgWLdMdfmhM +CgGnzPNggCJtNTgTZTPZzZZvvcDcDDdqDFcJssJDHDqvHq +jhhrrLVlmLRRnRflfVbFHHHqdVsDqcvbHVDb +jWfWwrlmRRnQmPzZNGZPBNCQTB +NzDDhwNmhvtrGmNCvWRVbcRRVTcHHcVFTbwV +LgsPlLsQgQdJsLdldtpgFFTMbnFqTcMbHqFcPncq +dgsJsLLLggljrhtGNNtSjvGm +ptzSrZtzhsmmtPrhLFRFnjnnLMsnfLRL +HvwVDHwWWgGDGdHgqVDWDMnRnTjFNTNjfLJvRRRRRR +DwDgWgQbDDDHwBBBWdwQGVHhlhlZZSSmztfcppSBhzZcZp +CWmWRzlMJqWDWqCJbqDlCBBVLMQHVMGrfMVtQZrsLL +SnhPdFFPNZsBBdHtVQ +SSPcFFgnwnSpwvcSjwzCqRzTmJbpJCRBmbbD +wQbqGWWSqwrbGWWWGjbNMJPfgfnnDmPnPNLfjN +tJFztRZCvVRCztZFZRVgmMhmgNLfRfnmDPNPhm +BFCVZzpVFlHCdbQqcTcGlJbbSG +tttfLPZZQZTlZPHHPWgMVvBnjmvjnjgGBQ +FzcNDDDrNzprrrshprhFJtVGVnjtjGvnhvVnnjnjGM +RDqJNszDPfdqPtlT +QCJdMjCQbdBjSbTHDsbWDDwHTP +zlvlmqzqGfgdNzLldrHwwPGpWDrPGZWprr +gfVfRczVqcRzmdcSQMjQSQCSjQCQ +RhhCGhRBShjjRfpwppFTfFHZHZZD +qzdqzlnPPctPdmtPdTZbwQvvwqvHHvZpwZ +nVTVTcsWmWSRhhRVrGVB +GmshRMnzqRGsPNwMwcrrpcVV +CDCbFCLvCgfDSFLslgDpwpLtTwwcPtNNtTTprt +JvSFbSbbFllJlgDvlJbgdRhRdqzBGnzshZnRRRnHBZ +ShJhtcsvvvQbnnsccVTLVTppWqddpVnLWp +NdzPrPZgPMNNrmzpTzpTCjWfzCpzVL +dZgHmZRPPZRlZmrPDtDRccvbtQQbJbRS +wqjLjwhznhBLqLWGfvSlvcmlrJsqrtJTJJ +PwbpFPQDRCDrDJTrTmvs +gbZVFbZHgwHbCdpCRMnffNLhWnnzMdzLLW +RVVGSNTTRlNqHblBNB +JfwJMvLLZwLsMJwWMJfwLHBqzFlvzpBQcqzblFbBqblq +wMCZJsgJCCCnsMHrgLLjSPSVTgShtRjTPhRRmt +lmQSSWdMHHLWgWqD +ZZtVGGGJrJvGVCwfgHNLccmNFFcqtc +vrCGPhvrTPdRBnsRTmmp +dDMDDjzCQjwCCcDgjSLLLsLNlmpplN +FqrHFTFRLCLVFBmS +JhHJhHRThrfPZPvhnTZZbWdwdwDDWtDzJDtbMtCW +ghwDzJRDwHmPthncSPncLLsPcvnv +MWCrNTCHrMVjQQMQcSdnpTLnFFdTcnTc +qbWMfWfNrWVQWfbjVBbqMfwDtqzmhmRRzGhtHhHhRwZh +fmSmnjTjrlzGlTzJdH +BrhRRQMrgQvgFFhQQbwpFvGGdZqZJqpJqHVpJGJLHdLJ +ggbDwQMsvsMQrFMFcWSPSCPmSsPfnnmP +cmNVbMrrrjcHDRcvfW +wQGdFfSThFsLhhHWvDCWDCJRCCjd +LtpStGhqrrpnfnpp +bvcccTqbgvpGndJtgdsgNd +wDQwQhtQhQRmSmjsJndJdBBJBJnlLS +hwhmRrzFVjtwzDmrVFrvPCcCMVPPvfqpCCTVVb +jRrRNPNRWjPRWPRQNjQjThTCzBBzDCFBGzgDFGGQ +dnppLwmwCnvtlqltvtnTGBThGhdFZhgzDzGccD +MvnqpLlMqCqCHMjWPPHMSHSs +NNpNNvpvBdtTrMFFMhSSwzjzchzwhzwL +VVndHqflQZZZgHSLLhjzRSmZRhcR +glGgnqbQlngnWCGJpJprtrtFrdPPGs +WqwRjzGtRzZZRRGjWBJzjwmfMTHGGssTTDsrLmmmQLMD +SNdvSdFlSNNhSPFFcPFclbQQslHmfHTDsTQMLgDTmHQQ +CNcCFvpdnWpjWwJf +PVPnVHcnRncGZqbVzHVPnnLbSMjwrzWMjSwDtWwWtwWhwDWz +pTfsQCshCllpglWWSjBMSQSrMrjM +hvpvppggCpJTvTmshgfsmZRRHqbcLPHZmPLRnmPZ +LQbhVZZmZhZjBdbGmgHqnHTmvqgnnWHr +SzCfDFFNRfsSFFMFfvprvpWzqzgqTwHTvp +CDNDFJgMDSQhjVdPJLQG +plpdLdpjjrrHJJjLrrHLFdbzzCcvzgFgcwggzPMFvvcMhM +GRtSBQNsQlMPRzRlzw +ZSTtsmBlmjLLpnpH +hglGNVSdNSghzSgCBhDFLBMBtFMMFtHtbtLL +frQZccRcqGFmFHrJ +nvfGZwvTwGTfQwvfTwfgnCSlpdnzgzslppCsCV +snTSPbQnTTnQgbmsTJsLfZwjffhpLnGRjpGfjL +dcNWcNHHlNtWHHlCtltWNFNMLZwjpGfpmrZfrFprrRGpwZfp +HmdNWCmDMVvQPDgqJs +GGFtSngQLfnSnQffgPnRgFRGRwmRJvwbBbJDwjvTbjrwhJvJ +WHClslcNNWcqNWlCZdcHsVrThBwBjbhDTDBhrvDZJTwm +NWVqqcHHNpsNcNVdVlhCMlHQQMQQzLfzQPttFGPMLSLgtF diff --git a/day3/src/main.rs b/day3/src/main.rs new file mode 100644 index 0000000..65d1741 --- /dev/null +++ b/day3/src/main.rs @@ -0,0 +1,32 @@ +use std::env; +use std::fs; +use std::collections::HashSet; + +fn main() { + let input = fs::read_to_string(&env::args().nth(1).unwrap()).unwrap(); + + let mut sum: u64 = 0; + for line in input.lines() { + let mut left_chars: HashSet = HashSet::new(); + let mut dupe_chars: HashSet = HashSet::new(); + + for (i, c) in line.char_indices() { + if i < line.len()/2 { + left_chars.insert(c); + } else if left_chars.contains(&c) { + dupe_chars.insert(c); + } + } + + for c in dupe_chars { + if c >= 'a' && c <= 'z' { + sum += (c as u64) - ('a' as u64) + 1; + } else { + sum += (c as u64) - ('A' as u64) + 27; + } + } + } + + println!("{:?}", sum); +} + diff --git a/day3/test.txt b/day3/test.txt new file mode 100644 index 0000000..f17e726 --- /dev/null +++ b/day3/test.txt @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw