diff options
author | Nat Lasseter <user@4574.co.uk> | 2022-12-03 16:32:03 +0000 |
---|---|---|
committer | Nat Lasseter <user@4574.co.uk> | 2022-12-03 16:32:03 +0000 |
commit | c62e6e28ad065948557aea88958631462a42b1ec (patch) | |
tree | a02897e40f50c62d75e4bb4f06ea60fbaf851e29 /day03 | |
parent | 17d5ad4f0b630f2e8363c85182ff3dfdeee6dc52 (diff) |
Day 03
Diffstat (limited to 'day03')
-rw-r--r-- | day03/input | 300 | ||||
-rw-r--r-- | day03/part1.rb | 19 | ||||
-rw-r--r-- | day03/part2.rb | 15 | ||||
-rw-r--r-- | day03/test | 6 |
4 files changed, 340 insertions, 0 deletions
diff --git a/day03/input b/day03/input new file mode 100644 index 0000000..cd857ef --- /dev/null +++ b/day03/input @@ -0,0 +1,300 @@ +jNNBMTNzvTqhQLhQLMQL +VCwnVRCGHHJTdsLtrdhrGdsq +wFJZTbRcnJCbpwpFccZCBfBvPzfpgfgzzWvjSzNP +wDWgDfWNTvwvgFfWfddGldJVprrrVdNlrN +nLnmLSnmMVJvSrHqdV +MsmsbLvtzMjFsCPDsfBwwT +WTqSCqWSWqSgVZqJHpHmHrhMMVrRhBnn +PtLGLGddGGMCpprM +jFvLPPlLjvfjjffsclvPqzzJWTbqNSWZsbSTDzCW +lLSSrfmddlNpnmLdfSPddDdbZQTZgZjbZgjcQZHQPjQgZP +MJMnhzBJVJwvGsMRhRhTsHTjZjHFctbtHZcgZj +vzvBWGJMVGwWGGhGqVBnGzVGDfCDmrqNfrrLSdpSfLSpNmNC +qGWLgfbWhqpLgZbJvTRWJTvMWRslMv +FQwPwNPCVFQQdNcFHNcwwsvslRDRTMDMsVTGJGtRTs +wQHnwnQFPNPdjnnPjhphGqBrfpBBBfZf +mpVpmtPhVtPBLLbQTJpBLZ +vzFMlMzvvRZMTbJQJQbf +srqzvRRqdvzFFrDnvqldFVtwCVCHWNqJHNNcHchCPt +CQJJLZCJLqNMMDDgGLVV +RfRFFszTtzbWTFnRtFrRrWvNHghvBVGgMffvmBVDNgGV +znsjWzstnWjbDnDbTZCpwZcjpjZqQCwSPp +jRrzzrPjLnnpQQDsjj +CTVnTlZWHTcqZBcTTTHqWscQsQDQQDsmmQfvfhwDmv +qlWFWWHTZTlqTFWZHtBVFdlTGdNzRnNngbbSrrSNNzPgPGSz +cWjbcjnssMmRPWbGsWcMbfLBFrZBBLLgZwBrlfLQZtCw +vqpvFHNvhvJzdZQZtlgNNwlrrw +JzqVVVVpzhVJqzhSzJhhDVnFjRRMsPnSRcGMRMjWjWmR +NznNGQgSRQffbbsR +jjjCLwdvLcrhqdblFJsFSPfbDP +qrrvwHqjtLmSSggpBtgn +LGPtFtTfTfTfLrrWTSWGPrrsszbsjZHzgdzSwzbHdsglwl +NhHpVpqNNqbdszRRRb +ccBMJVDNCvvhDNpvNDpnNCVCHFPTmfLTGPMQrfLGmMLWWQQL +dRgRhVLRlncZSSrtLp +WJmwvvvjQvWwFBBvFJPHpwvGWTScGsrZtttGTSsrzTsSZt +FFHJjmjjjPMvfHfwpdRqMppghdRCddDg +NDTRFSnNsVVBDVlM +JjLZWqwjHvfrvmHHvjLWWLlhPlnPlChlQhJQnnzPPBCV +mwHvHmpvwpLmjnvpvLvvNGcTTggRbdTGcbNbTTpS +GGhZQMsmGRfMwfpclgdBlbblBBZgJc +tFvFSTSDnDTTLtcFMbWcBgclJrgd +vzDtzMVtnLTTMTSjSDHtppqhsqqfGjmpPhmsRGPG +MfJtWTTMJfzBbVWPZWQbNnDV +FvlgSHSLvmCvZjgcCQQsPQQsjnbVDNVsdn +HLhclRlHRmHvmLmclLZFSFwRRRpJMtwJwfGGrrtrwfpf +scsswLQcGmQmNHCqvrsHqfff +bdnPSMMMClbBBPCdDDnDVMDWWWvfvWFfFJfNqqNVFqFNfr +bDPTlSTPPbSPjnPSbGmQLCcjLjwzRLcmCG +tFFJjMnFhdcMMJlWtdnlFczBSZGNSjGGbBGZLbZZbLGB +QRgqwwvsLssZnGCz +gqfvvnpfHwRmHTFdFcPdJJmJJc +fccTzVVcfSmdThTTFJPFgg +wLsWfppsjBrnnwjCBZnZqJJQGhBdFJddQhFqdQBG +pZrNCWLwLZLjwwWMftmNzttDcVzVvt +rZnVVjVSMcrwsNbc +dLvQLBLFddvBLzpGmddQCqNswzsMjbhgbblbcwshlb +LLCCWjGBFPmCWdmmPWLdWBpLRZDSPRnHSStRfnZnZTnSSTfJ +ddfnQRbpldRlRLgFglqGCLqsGq +BWBVDZWTBTDPvVTZVDBDNMbhcLLHsFqgvHJsLCJCGcHGsJLH +NPZPDMWZMbZrBVMDDWNmBhMVpSSRpzjjfjpwRnSpwzRzdzjr +bvPSBttgGmZwScwShS +NJspjJLdprzHgjrLzLNrnHQCmmcZQWlcQcNQwlwcQCZC +HdRJsJrdHTbqGMDtgDqT +sNVvSdTstDCtdzdzSCwTzCRhRQjfclMflppjGhffjZcN +rgWlrnLLbqbQMfMphpWjjf +BmrnrFPnnBLlqVwDCtCtVPDTzT +mJMqlVlttQlFVmzFQMQMbQMSSDNwwdSddNddwdDswRDVdR +GGZgcfjrvCCZvgCZqvPHSwRBBsBwswcwBNTDTcSR +GZppfGHGrgGprZhLthFJhFqLWWFhtq +WDHHLtRBHgDnVrWFVFBTdzzZLLjZzjjvddLsvv +JlqmMpCMCGMwbwZddTtCtv +cJJqSplpfSGccJGthFVcVHgFBWBgHgDB +tlFwbWtQFLJhlBFlWPbwmsQndTrrqdnggjqdgnTgTT +GCMBDDCvRpDVpRpHrsgdqTjqgdHcsjHd +MDDvCVGzBGfpzBSNMSRRmwbLWlPmzbPmlJlWbFbJ +fzFzFHBfnvpHFbnzbHfBHZggCGgtZCltDGggdCCVtZVD +sLMNSccQLMSrmLcshLvtCGllPtDdGgtJgmlV +cwLMwwNhQhsWSjqTqHnHbjWTvH +NWlqqhNNnGtNvvWQdrVGBBQdVrwRQr +mppCjppMrDTSgDppCDTMQVRwdBbBQVVbQdQsVB +pgzzTFFFrjHqHnqJFWnh +ncQrhQjqjVQhGsGBbhtsstTp +RllWFLRfZrGlBTbg +vFLLmfNRFSNDfSNjcwqJVrVVzQjc +mmGrgwmGDGcVWVjNNW +nDsqfPCHnpntDssfJPDPjWWhjNTTcjjhTTNcqWcc +DfPCJLpbldRrlrdwmw +dJDNbRhNbJdhqCnrWjhsTWvplg +LMHrttLFcMmcMFLmtGplCggpjjnvTpgnTTFT +czZMzrzVZzHZdNdbDDqDVQNR +sbsJgbsmzdgRgWdg +LLLFBzGMLjzzFtVFwwwCPPRCCqQQTnnCMMCMCC +GllfptwjLjlGFVFjGzpFFNbJDmprrNDsDmDvJhmcvp +SccPbfbncpcfsjbRjMBCTTFGMTCQtJtzFFFJ +vvvdgVhlmlwlgZLgmJhWQCWGGbWtWJhzTJ +NbLNDdbLVmqqmfcsrHcrpPqrcH +HcgDBJSHTCzjjnMNJjrW +VppGMwFwllwwbZZrjvnqmzmnzpqjNv +wZlhtPGPLFVFlGZbVtVTQLLBQRRTSHTSMDCgLs +HPMMnhBHlMnMBPBHJHPWfdnBmjvLZvjTvZTZDgTgTmQmZhZZ +SrzrSScrctrwVzCSCmzQjmLTLvGDvTjGbm +CswstFRNpcwVNRrVVSVwpwpHJnnWWBBHfWHlffWfQMnM +mlFMtqjvMdqjmMCCJZsRQBnszlZz +HcNgcPLcHLwtcfZBTsnsHJBJTzCQ +LGGNhbNtNLDfcgcwfbgthfwFrqqVdFMqMMhMmvShFqmvVv +NbvbBGNvhNhnhpbgpGfBvNgmRjCdPCPCCRCQmmpRdTmTPR +qqFSSqWrtSSccjMdQMHFMBjPMj +SBDSBZZZwGGZNJJg +qTdHSLSFRZRHHZVgpzhbJszchsnsLg +tDvflvrGttDCjlQfmCGvtCftczhbzwJczcJgznNmzJNhwgsp +tQlDCDtrfrtlGrjlQBHFHPVHbBbZqTZdVZBF +MTwvsQJMvvHwVMMJMQNNJRPWWjCllrlWGFlSFCpjgFVSWr +zhcmnRZmqmWjCSFrFqCW +ZbmhZcdZznZfndtwDtMMsRQTTQNRQw +ZhhVqQTvZvVhSmQZcClRCLPCgTGGLbgl +dJWHwndMHswswlGbCmclmLHbbP +dnwwNJnjBjwwdddnjndfWvmvSNZQNrVVmZvZFvvQQv +trlrlrZzsjRjdFhlpwdpnpdp +QqLvvLQmLfQTLbLTfHmqHHLqQgFBdCJBBgggCJdhgJwCggBF +DPDvqLqffqfhSVjVPSPtsj +gsnVdcBcjMMntGMh +RQZLRZlZDRJDCzCjblJSDjQZWWTWPCThMTFGNPTNttGwCFMh +pDlQbSlzpQsjVpjHVfgs +zgqtCtJltdGttJgVGPPJCtJvQFsFFbTFssNDNDsHLbTQbssP +rRcwBnnpcmBqpbLHDspTbFsb +mwRqrqrmWrZnfWmBmnRZlgClgJCJlGJzClGMtG +jlzHllmPnpHlHZBWZJJDWMBNVH +bQrhDbcLgsQrtdVCJWfCCBMMVWrJ +QhGdGcLGwwwtcDzznppPpPwlpnSS +qbpqvWFHbFHHsWwPqPpsVWZTlDcLDddddDrmrcVZDrmT +MCgSSJMCztdmcLzlrlDl +QCRMRSnNtRSqqRjsjLPPvp +ZnZrTfsWWvhVSRmzqqnn +pLGBLBgLCpgGpbdLbgMClJTmmhShSRShqSBDQSRRmQVV +dpJPldgMMbglFdrNWWjHZNccTjZP +CCZCQzwwdmMGDWMmhCMJgpnrnwsTrFNLgnpNgg +jfStHtcjqDPbPtvqvgLNpppnHsrsFgnFNp +fcqqPPPtPSfRVBBRPRPbvQzzhQWGZQVQQZDQMMzGQM +VVlDNDgppgtNltlrJPbjSzPPzjsMsjBBMWMM +LmGRmfmwCqQqbsQBMqJj +cHRcCFfmfmGLJLGFcJLFwfdlhDgptthhHpVrNVdhlvhl +vSSdnBVpscwZcBZB +mLHzqtGtNfGHHFNHMhJMthsbcJtctZTw +GHqHHGzNDNFCfqllCFqVDdPSDQnddvcpPQjdjg +CMWcwGTrvzDWzrDccDCGzTTTplZgSjggjSpSljSjBpSmgmWB +nssRttdsnhsdbFhtVFhNpgwNpBBgHHBBBBZSjNSl +PnVPVPLFtvPvTwwrQq +tlQlqlJCCJWgFrprPjpGVpQzvp +SDbwShHbBZZbhcBdDBDSTrsVpPrzzzHVzNllzGlVNv +BTbbScwRhwZLnLtfJFLFJgWl +VDfPVHfDVMMfHSPSMTVfqgFthFcFrtcdhrhDQdDmdcdt +bWGGHCplWnJNpJCCnlnNwdcwQhmmdmtwddBNcc +HpGCnZGllzlzJWjnCbbnCnRvfvsSTVVSgVLqSsLsLzPPLV +fQqcfqfSDzDWffDZ +NcCLCtPCPMtNBwdthpLhPwzsHrszsZssTsWrDrDVTNNH +twMPBtCpLBCtwMPpJcMBSjjnngqSjQQJbQjjmgmn +vQwVQQVqcJvVJvCpQBCLpdgSFCdjjWWnMSgnSjgjbj +hszPRDTVDWWWRnjWWj +TtDDZsszlPllhPzmPVGssTPpQLcpvpBpZpcfpvrvQvBQLv +sRmGqqzzzgCtRrttCP +cffSwNDddTdfGWtgNCrtGMPP +GGcTwHwHvjqLLjLvlJ +JSdjLJMBdMSrfwwLpWgzWmvDhggzWvfmgD +VsRtVllstHHNllsQsHQRzchcnDmvmvnRvvvcnZ +tGVGCTTTtTFVbsTTNTHsTTqBqBLrBCjqBwqJwqBzLqzw +MhjTJjlSDrplQvFQ +RHttqbNGGmbbLmLmdqbgnFQwrZswQrwDpFpppdwfvQ +gCNmDHHRCLHnWWSCjhWPShPz +BvzpbBwBmsDrmGVgZFDm +TnNRdtlRlCdFFGTLffrrGf +jltNtRCPSlPNtcpwpGzjMBpvbhps +hflJphNDmmbpfnfplbcvLsHVLsrsZsVvCb +FgTFWqTBfFPfFqQqTwHsHccVVLQCZZZCVH +BSSRTGWBgFggBWgBGStTGpzNztmjjzhhzDfNnMjnph +mDDFjjFmVlTZJttffD +hhRvNNCvdNMRLzhSzpptwslNTfNQntsJQZZTlN +WCdMzdMzhMdvRvLhCRLPvjgHmggmbmbblgWcGmcbcG +cScMdhsDhDDdvGzZptzGcnGtpB +NPWjJqrjJWwrSFWRJlrlNWJLtZznLBBzZznLqnpqnpnznV +NWNQwNPjCSQTQhTd +fVVCVccppZMZMMCBzJTNJHWZTWZzNF +QrmmPhDqPhsPRhrlbgRDbbPDJNJTnJzmzzfNNTNHNJNWmnvF +DgbPLbPsQsrbsqLbgllsQQptfwSjwtVLfwdcpCjVwwSp +ZlsmlrZZJcQmhBhlNrsrJRRbRCRggRbzGCRHgRCDGB +fMFvdfVTTdjWTTTfvSjVjpjzcCbFHGPHPDbPHRCFGGRHHG +cdvfSWjfjpdVqSwSvMdLrlrmhqZhhrrLLJQhNr +sWVVmDJsNWNjcSNJZcNcZWWsHTGHTChhHGtHsFFbbsfHhH +nqPRwQRgpQRPQQgMQgQLQqBhvTRtfdfvfCbFtTFFFTtvff +qgrPMLLPpVlbDrVrWD +VcGjcCHcVHPrGnjQDQgDgQDFtdglRtlQ +bWWhfzJhvZWJzNpmRTtsDLDgRTsNddFT +MhJMhJbMmSZbJZwSCtjqcGrrnGjC +FCvpgDsZNsCbvvvpVwcDrjcrmVMwVwHJ +fhfWdPhhhhRQQqzdLSRHRHJjBTTmcrTMrMrwmczcwwTz +qndhdQWndftfhWStfLQQfWgFNsgFpHCtgCNbGZZlZCll +mqTCNhTNmGTLwLNfLrSrgZHDvfPDPv +cjsMQppsFnFslnRQQGMDHGZHSgzHPDZDSf +stWFjcFFsJlQcQtwtbVwCmCthmBTGb +fmsffcqhmqPsnTCnCcQpzjSSNpBWBTQpVSSD +vHbgLRvvvzdgjVVjWg +WltLWvWlqcChrhlf +CtwjffWrdznRtzCwLsmGLlLMsMmMGb +cZFFbgPgJZDchMMPVsmlPGmG +SpNFJBJccNgDcTJJTdbStbnntrCdSrjWnb +qWzgNFqzqHNTBzFNCZCGPpPlHmdPblls +rfSJRJnhhnJDjrfvRStCmpdGsdlDpZZZPbPCmW +cffRvfnnVRjFTWVTLQMFWN +VcHhVrVCQQWhffzcRZznnZFf +dDSCGSsSblwDdmLqvnFZzNZplfpfRZfBnl +tCCwGmSqbqtwsVPjVJWtJHHhQV +fvvTcWzGcCJrJGJvvHMbZTmRQTbpMdQQsR +SgFhVgllLgjLgwlwljFqVFSFdjmBHmZdRMdZpbjpmpjBsHdM +LNqFnlDgVqllwLFLnVSgLFZtCzzzzvCGGccCCDCfvJrv +FczpzmSjVVpSQrzzcRpRcrwqMtJqwtvtLHvQwtLtnJMw +TvbGGbNfGCBBLHtJBHDZDMqD +shgdNTGgvNsflspcPjzVdmppczrV +JHLPLTsSllgSSPPSPLTRTdjCZGZDGGgCdqZtZCZdZt +mhFpnpFwqdGbdFDt +prpWcvnmhmpccBBJMJJlPWLHMDSDWW +GcMcjDbDMMjqHBHVlHvv +rLCrwNJCnwrZNLWQQwzQpRqQPlBRVVBRvvtHqf +zhnrnzdrCwLJCwzwCMGcbdFTscTmgcFlgc +cnwlFrdMsggblgsrMbncwrsWzjGBTjznBzWNzPzTzfjTzf +vvVVHSpQvvRQDJGGLWGfTLTBLQMN +hCmJqVvMSpqqChCJHDZrFsdhrtgFhttZZhts +sfDNqLNpqpzCzLsDqzbCVWRhjTNhShTjHmmjjhStBmvT +wZrlwJwFJGlFMTjhBBZTSTRSbv +wrQrgnPwMsnLbfffVc +hDcwwGWhMMssTcdM +NQmLbNSZHQSHSNpbvfdqfRsZMqssjqdd +LNVtLSSHLSgLNrgwJgJGnBwFMBzD +CRDfCbfjcnRCBVfjVMfMjZpPptplPWtppStpSlBqlq +HdTFLGsdLrzNWtvqPTcpgPZl +JLGmmHrwJGwhjmfMcbDjQC +VShGpPbWjcPCcTLcPN +HqfqDfDFFJDvZRJvqZRRqHZdNcwjllwvQQLQlllccwclCMCT +FddsFmJjjrgGmbSSpS +NRFFLtFtqFLGsdnGbQSs +ljMfMBDlJHgBVHgVflfnwdsSQQbddsSsqnqGfs +PlzDzjljzqRzWzZW +dtzZZbctPzwdlzRwlcdfRgtQJmFmhPSmmSsQQFhsmqSFvm +nDjHnNjjjMnfjNTMWhHQWJSqSSQmhqhm +CDpVCfrjLnnfwtBcpdcbcBZt +sssZSZtDfHbbdtBTCRBzRDFJCBLp +jwWgmWlNQNLlcjWhgQlrQQWrCCJJzFCMVMTzpBMMCVCMTwpT +ggLgrqljLlGvHqttftbP +cSGBFsFcSRZSQGsgBNgVMwMhDQDVfqPjMhwwVq +vnCTLlrpPlHzzjbMfqpbww +rJCnlmClvWvLrTmtTlZcZWSSWPGGdNcFGgcR +lfDDvZZSvLtDtCQZltCqVBWVBCbHJjRdNqWq +pGGhhzMRcqMBqMdVBN +mzgwGrrwhThFGPmGPcFGpwStTfltfDftStDsQRsflDQl +LjnSjLZLBcbBdDqzND +rrfhfMRmpsghfrhGhgQrcPNtZcqNCqdCqPzcNZMM +ZTTgvRpmfffpfgRRhWnVSJJLLWnvJHFlFH +lstcGcttdczzsWVCvQVLCHHnQHWL +rjmJrmfmJMqvQTLvqfGG +JbNrjGjGrMDRJghZggcchhDhzc +tftJQwCgSjpdWHjbRJ +DcwvlZBmGvHjdbczcRpb +sqwDlsBvGNSMQTCNfCTC +DwDrtvMHtBCvcpDcjCMFtBCblJfJGJbZlfzrRlJdbRdZld +sPLPmqhSnLQQSWqlbzRRhfJCJfNJhZ +mVCnWCsQqqLTPWmnDVMFVtHFtMBFpjwM +scChGddJztdNswNsdDsthvmpVmRVcZjmvVvRSMZVSZ +lQLCWgWHCWbFPbbbHqLnLPHHVMpVRgSMmZVSBZBjZVSjRBZp +QrTlTHbPnTsJGtsDdGCr +fMjgFqtFWMhtjcNQSDMmNlCCDMQN +sVHdHdJHwPGPGwwbpJGTbGTvClldmvRSnvlDlLLSlvRnQl +pJbHPHJGVbBswpTcfrBtrhmtrFczzq +SDGSDGVPqqqQPGrTQVTQDrSrJfHJgqhgJqzhJJmWfHpWpzmg +twCdCWMLwbtLLjBddgfcJgRHfRRpfcpRHM +FZdbvFFbVvsWsQsW +rzrRgqGrwgjRVqJCHLzCCWhtDbCC +dTZnNpvBvnJdBpBnsJPvsSCbthLtLbbQShQQLHtSST +BlplPmdlFsslfJmmRfwfwMjw +PPHSrmfHTnmHnHBzRhbFgfbFwzQg +LcsVsGtVLtLqpzwBvgzQRgTTTp +TjLJGTTJWJZZWWZS +tHcshJcJRhLsQscVtccJLRHfvlPjZFSvmvSbvfLFfFFbGZ +drwdTNlwwBTpCdCdwGPrrmjjmjmbSjFPrF +wglnzCDpJtQcztMR +bbMjTbBvgjZNSqldTlVt +wwrcFwsrsnnCQzrCsLnRsQZcNlpJVZHdttZVttSZqJZd +GwLnrsmFCCzqzhvPbPmWmvvfjj +dcnwQdcdrJdSwSFBBqfBfwMqfBfzsh +RgmZpWlCClRlTgBZbhHJJsZjfBHZ +DlNVWgWpgDCCNRDJFcrtQGrrVnrcFPtc +sWSHsdSrHWHsbdsddBsbjmfwffmJDJwcfDQgfvwJDj +ZNGPhRqCCRNGNwSDvmmwwgDhgf +lGlTLTGTSVVFqVTqsFHWntbWBsBsnBHb +QRRgRvDwWDVjmSbDnbTDlDnbqS +rHCPPHrcLFJcllqbTlpq +CldFrNFsgVhhhWgN +qSfMgNqfpmSmlQrRFG +cbBczbtbZTcPWzcrTrmRrLGFTQQFmJ +PBZChtzzcWPcZtBvPjtzBBCfHMMNdDgDpMfVfVpHMqNR +LJPPCHtgtLDfFfvTLwfv +pVGWGGjjjplhpGGVjWnldsvrrMFvfDMTWBdFrfFF +cjlhShjchhjGGmNVjplcQgmTPtHPPJmQgQHgtqgZ diff --git a/day03/part1.rb b/day03/part1.rb new file mode 100644 index 0000000..0ae732b --- /dev/null +++ b/day03/part1.rb @@ -0,0 +1,19 @@ +def priority(ch) + if ch >= ?a && ch <= ?z + ch.ord - 96 + elsif ch >= ?A && ch <= ?Z + ch.ord - 64 + 26 + end +end + +backpacks = $stdin.readlines.map do |line| + line = line.strip + half = line.length / 2 + [line[0...half].chars, line[half..-1].chars] +end + +commons = backpacks.map do |f, s| + (f & s)[0] +end + +puts commons.map{|ch|priority(ch)}.sum diff --git a/day03/part2.rb b/day03/part2.rb new file mode 100644 index 0000000..baaecb9 --- /dev/null +++ b/day03/part2.rb @@ -0,0 +1,15 @@ +def priority(ch) + if ch >= ?a && ch <= ?z + ch.ord - 96 + elsif ch >= ?A && ch <= ?Z + ch.ord - 64 + 26 + end +end + +backpacks = $stdin.readlines.map(&:strip).map(&:chars) + +commons = backpacks.each_slice(3).map do |backpacks| + backpacks.inject(:&)[0] +end + +puts commons.map{|ch|priority(ch)}.sum diff --git a/day03/test b/day03/test new file mode 100644 index 0000000..f17e726 --- /dev/null +++ b/day03/test @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw |