Add solution for 2022 day 03
This commit is contained in:
parent
8e9b63cfc3
commit
7f57a38e5f
@ -6,7 +6,7 @@
|
||||
| :-: | :----: | :----: | :------- |
|
||||
| 01 | ✓ | ✓ | [Rust] |
|
||||
| 02 | ✓ | ✓ | [Rust] |
|
||||
| 03 | | | |
|
||||
| 03 | ✓ | ✓ | [Rust] |
|
||||
| 04 | | | |
|
||||
| 05 | | | |
|
||||
| 06 | | | |
|
||||
|
7
2022/day-03/Cargo.toml
Normal file
7
2022/day-03/Cargo.toml
Normal file
@ -0,0 +1,7 @@
|
||||
[package]
|
||||
name = "aoc-2022-03"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
itertools = "0.10"
|
5
2022/day-03/Justfile
Normal file
5
2022/day-03/Justfile
Normal file
@ -0,0 +1,5 @@
|
||||
@part PART INPUT_FILE="inputs/puzzle.txt":
|
||||
cargo --quiet run --bin part_{{PART}} -- {{INPUT_FILE}}
|
||||
|
||||
clean:
|
||||
cargo clean
|
300
2022/day-03/inputs/puzzle.txt
Normal file
300
2022/day-03/inputs/puzzle.txt
Normal file
@ -0,0 +1,300 @@
|
||||
QtGHnGlcwQGvHwMHGnnGfRFCJnRBfVVJRVBfCFBh
|
||||
qsDjzNWhmspNNqVrfjVfjJCbBVfB
|
||||
DLhPTmNDTzTqzpmzLpswGMHtMgwglcPQMQvSGM
|
||||
ctwDjvgtltgglHrSHCsQWBBDfS
|
||||
ZJZdVnmhmfCprnBTfS
|
||||
dNddhhdPRRdbdNcvwCPCgCctjPlF
|
||||
MNNDGMWrQsfhtrTnrm
|
||||
jcvRPRPJdvccRNFNCjLdcwJCSHtHPmzhsSzPHmfhnftnTffH
|
||||
RddRcjRvZgZNWNgQQb
|
||||
fPrvhqhRPSfCCfhrqtbtLcmZmtHCtpCFcc
|
||||
WFQJlTdzgGJVQGWQTzdJcHbQZtLtHmbbZMZHsZQm
|
||||
JFNlzTBNJGlNPSRhfqRRrN
|
||||
tdVVgttdDtJJsNPmzdQmjcPP
|
||||
CBTMmmmbTBHqHMwQcZPWWsWnzbbnzW
|
||||
CGlLFCTMGvqBGvGvGSRSRfmtRRtgVgrSLS
|
||||
LHSGJLWZLqHQHpRHRz
|
||||
bpBPVtpCwPgBCtqqvzfzMQvjbbjz
|
||||
lhVsTgPlBNThpBNwBtVThPnrGGWJZnLZFnFrGWsFrWZr
|
||||
nQbbbjpnsdsGCSlmHtJmvljHMjWt
|
||||
cDcgThLVcPTHVlVlHllvWp
|
||||
cwpgghTcRRczDhnQGGCSdfszdSbS
|
||||
vTMFDNTlDhjTDNMNJDwmWWWfGPfLnnzLGfMmmL
|
||||
bVQgbpqqtctzLflltnCz
|
||||
VSqlVSHRFvNwJSDj
|
||||
RfZfjljffssWLWPTGPjhzT
|
||||
FDCvMDMJJpBJpBFJCMBDMtPbWbLVPGztWPVTtPmLWGhQ
|
||||
DpgHggpwBJwzJMrFFvrCrHsffnRScNsdclSnnRnSNs
|
||||
wTvfHSvSwssPGCLCPhgSCn
|
||||
QNpMRqRJQMZlBBbRRRMfbZlBhPChghhlChGCtnthctjPhchh
|
||||
rrrNBbMZqRbqDsFHTwfWTFFwrF
|
||||
fVgfQhhgfTLHSLNZZHfZ
|
||||
CDtsqrqlDtqDddsqjsstHrSlNLWLcSZScFWWcNBFcBcc
|
||||
jrCJrHjDCMMDsJjJMstThppgwvGzVGQzhJvvng
|
||||
DGlTlSzbSnzmwbmblTBBPgffpNjFHppZBH
|
||||
WqQdWqqJdCrtvQtJLQjtdcBNfPsNZfHZZsHNNZHsBBHL
|
||||
cCJcjdRvqrQhqvWMzlbDGVGbSMSnbR
|
||||
BfQmpfpmsRCRPDSZVSjjSg
|
||||
MhNJGMTMHGGTbnGMJrbJHTzzdPgSwSqqPjPdZddSqNSwPZDw
|
||||
TWbWbhnHWBFBFBDD
|
||||
FrlJbTcBTcrlTlqwZTwWdhWLChLtVhdfLhmwWC
|
||||
pppSpzBGMMMjSSMSzMNzHRSDVWGWDWVCDtGdtdhLhftthd
|
||||
RNNgpMPRNgzggFJcBPqFZJZrbc
|
||||
SdvnnvvntnbDDqtz
|
||||
wRpFRRspZhgZgFggFMgtczcGGDzQcGlGDMqcDG
|
||||
CLLCFNZhsppRvvttBPCjStdT
|
||||
JJDMhSwmMwBnnJPJmQcFtfQtfgQhQQfcgH
|
||||
ZvCvTGqGVWTZZWptQggGtHfDgcpz
|
||||
dsVCvDTZWWbZqqCZqVsqsqmNlPNnSJmbNNmlmMSnJLBl
|
||||
MGnMBMBJFpBcNpdwRWRvRNdblmwW
|
||||
LSgtPCChgjCPgSSzCSqWLLbrdWlmwmwmFvml
|
||||
QhHPVSHghCtQFgCzgQhVnDGMGffnpcZMcMfJDf
|
||||
QwrJqMLRLtBQRtWLJLvQLMrMgNNzPDngNHlHnbbbggHlgZNt
|
||||
GdfThGcmShTGSfppmFfTHDNNblSZDbbzlBzZZHHg
|
||||
TffmGBBFcCFFmTGFhBwjJQJMQWqWQCrrvQMR
|
||||
mRbrjZzRLchHqqdLDllh
|
||||
mCGCsJSggCmgSGShlhhDVVVwhqSltV
|
||||
PsfsGNGJvGPfspvcmrTRBrjTZzvT
|
||||
NRNqFFtqqFrDDQRcJJJNrWDswHwWwbDVTgTwLbVlVD
|
||||
ZpdHHGPmgwTwldbw
|
||||
HnnnMPMzChPmnpnmfFJCRqcJqJRRrrtSBc
|
||||
LnNNLBmTNBNTwNZZjZmRMHJwMHvbWrvPMMWdcP
|
||||
GtSFDFpzsGVvMJdJsrMbvr
|
||||
SqQQGGtqqSVtDpGtplVDpVJClmnhnTZNjNfmnmBChCZL
|
||||
CHltTDsjHNHHdpDRmqdPQpzd
|
||||
fMMbbZwLJgMVVFmcRqRpzdqbRm
|
||||
MJJWfnVhMzTNGlNTsh
|
||||
WtWbtWvrrQGrbcSWHHfSHfgdWJ
|
||||
zpnPhLPhPnTMMnzMzpMnDzLPjTVjccSgdmjdvSJdHSgdjScj
|
||||
qqvMMCnDCCCzqqCzhPlLsRsGtrsNlRbZtBRtbrrQ
|
||||
mPTmlGQnjNTPQQNljnlQnmmCtgRPhghqgqgzqLRPtMqqMzhq
|
||||
pDsVSZcdVspbdBpcBHBcHhqLWzMbfhMMrMgMgzLRft
|
||||
pFZpJJFSBFRllvlFNC
|
||||
pbMVjJbwbbLqlZlstRhjstsN
|
||||
FSTnfCBcnBSBvSmmCFCCRQhZBZNsRGlsQQNsqZlG
|
||||
dvcdfFcqmfcmdMdJgwJJHMbH
|
||||
QSRlWDhQQqDqlTCjTRCSljSmVsPmmGmzsgvppzPVVzdPSP
|
||||
HHwtMNMZvfPGbdwdggwG
|
||||
ZFcNMFFvHLMjlCWrqhqchh
|
||||
jccDSGVVlRLVSVVScWZZwLvbphgwdpLwZv
|
||||
BQHBtfQQHBfmMtmFznrHzmDwghWphvZZFpDhZvgvpZhh
|
||||
DmQrPQnBtTnzrrfHrtfMrmTCGqPNjSPCRRGjRCRRqCNjVN
|
||||
bRDbbtVgPFFbDfgVCtPcGsNNsHccqcGGWCNNzW
|
||||
ZwlmJwwRSmlJdQRhqGNTqzGTwzqGhc
|
||||
ZQdZjpljldrSMjmjdRLdmdbVvvtDVFFffvBFPVBgMnBg
|
||||
rzwGrwPGppqzPMzrdqsssSsvgtQgTTTJsH
|
||||
LCNNHLmHWvCJstsJss
|
||||
cfVLLNBmZBVMVDHGwrhM
|
||||
FCGFrJltMGdFdGtlFtCgFzQfQnZfVVVMDcQDVzVjfD
|
||||
PSPSPZPRbPRsbBRbHBTPvfVzQcDQqWWnDjnnHDjzcz
|
||||
RmSTPwSTRpvSlZglgZprZtNp
|
||||
njtLGLbcNTbbLnLmNTtqnFzVPwJFFzPVFPwMVmfMmV
|
||||
srpZlSpsSVqgSPJJ
|
||||
HZsHsrZhrBQpqQvpdprnTnnHTbGLbHnjHGbjbT
|
||||
vFFnJjvnVSjgCqSCDZ
|
||||
lswrrcsQrHTHwdrDdhmqqsRhzmggghgsGC
|
||||
QPrWQWcDNDHdddNrQPfDMLMLtvvMbnBpPFvpFFvL
|
||||
LgltlRMtcccgMdlzqTVwwrdsqm
|
||||
FpvfSDNzSpnvGSnNpmsmVqVVrHwvTqVmmw
|
||||
pGjDFFDpffnWQbnzjLJhhLchPPJMPBLt
|
||||
lJqBqPvtvVPnttnJjJBjVMzMrFhdQrQFbGbQnrbzGG
|
||||
msRgTgmTLLmsTDRfQRllMdGzdRbMHQFF
|
||||
msfDWglWTpSLCgTpSCDsfPjvjtwVjJZqqSSvPVZSqB
|
||||
VZZWGZGlZZZMZrGMlQBQGWltFzqvzzcVcgzvmgzddccgvqFc
|
||||
rLjNrDRLDRLTqdCqFCNzFgqg
|
||||
TJSSbHfDDfSnbpHpJnGhWPtrZWnPhBwWPWBt
|
||||
ssvsDDjNwhjNhGGgDDRZllltLCLvCWbMffLCfWzb
|
||||
qVRmJFSQqqVcqSMWMWLMlllbtbVM
|
||||
PqQBPcFJFcmdrJPJrFrQpsNjnTGgwTwGssRNRnRBsG
|
||||
sHsJJfSsrpBLHCLJmdqgdZgRNZQlgRNC
|
||||
VtnFbhFhwjwVPPjhbccQDQqgRlWDQmdWZZDd
|
||||
hFhFvbhGwzvFbtbPnttGbtjsLBfspSrMvJLrpJTrMsLZrH
|
||||
nzJDJvvZznnqnZrpTgTpzzTNjlmtsglBjjttQQCgCCtlBj
|
||||
SRLRfdVfSVcfHdVVdSLdMHQjPtClsmcwNQltjwjCQQwm
|
||||
RShVLWWfWWGvsTZz
|
||||
vcdptvndNzrndjctrvcnvtTdbwwRTgwbHDFDTWgqWlWqwqbl
|
||||
ffVBmQPhshhfPmSfBPfChmmCWFWbDWFbWwwqRDbsgwWMbWFb
|
||||
SJJCBLZBhfvnJnpGtvRc
|
||||
HLMMHHpNqWHqFqppPWnshtsLhBnVDtthLLms
|
||||
JgmSRgCRGbgwGSbgJJjRRDntztrVhnsDrllllwhhzt
|
||||
bRRCCjgRvJQQdcdjjvRcQdgbZPZpqfqpHHMfNFqNTPWqQWmq
|
||||
PPwQTlFrLqrLQrPfPJrHtcjtSvdCNNctLCjNdc
|
||||
DGZMhmVRMGqVmVDnGMbBZhsjHNvjdstddjdjccSBSjds
|
||||
mqzVnWDmmGzRhqRbbWQQFwPQQTlzPFpTlPJJ
|
||||
RMmnMrZMlQQpGrQt
|
||||
gPPgcDBcjdgjBCBcQtNDNzzthltGphhz
|
||||
FSvPSSjFWFScSWdjWvbTwWJQZQVRsMTQVwTmVR
|
||||
PwlbMTDQDvMwttThPthhvhvvZzNLzNZjQCNNLWLCRZWQRzNW
|
||||
VpJHFpgfqdFqqHFGHVSdGmZZRnSsnLjNZCWmmszLSz
|
||||
drrJRGJVrcMBDwhDbcMh
|
||||
hghHTgbwHbDqHrgbbbSLzzFNnsVqNVBnLnfs
|
||||
jMlcMRRmGcRlZQMMJRJSPPmCFzBBzpfBfLfpFLszLNNFVCfz
|
||||
JlmGlZmvRMgvrgbrrSTw
|
||||
ZtTTHpprHtQtHtpqPmjVSScjVSjjSNqw
|
||||
nRvGWhRbnRGzvWCBGPjNdwcSwcnlJdmmSj
|
||||
vCbsmbWfRsRWWzsMWBQFFrDZpgpFHLgQLMgQ
|
||||
QlJBfZssjgZsQsDNbScdDZdNcvvF
|
||||
zrGrVVpVMWMwMVLMwqVWpRdNFSDcFNDFbSddqHldDdqd
|
||||
VLVtrWpMRCRLWGWMRwVGCVPfCPJnBTQsJlmjsfsPBQjC
|
||||
GQqpnnFWFcnWpBMhhSZRhQCCCfRQRD
|
||||
HsbcczlrjzflffLVfDlt
|
||||
jssvwsHPsjzWdMcgBnvqMB
|
||||
JMJdMptTbbtpJZhtTMZwJdNWQBPNBlwNBNQWHBCHHPlg
|
||||
rVqsvVmjrcCqCPsPNQgnsnQglW
|
||||
rVvzfqvLjFVDVcLjCqLmJFGbpJpRJTGMtbRpdGRG
|
||||
LrmwdZHlSlcVlSrrDWCzbtpjpgzjtD
|
||||
gBGgPTTBqPQTqnnPJhMTTCzzppnCvptpnCtzNpDntz
|
||||
qQPTTPshRRQqcgsflHZcsSLV
|
||||
smvdTvlPzslmVjMhJlbjrblJ
|
||||
cqFffFffcwFfpcDSjcnZwZWrQVDrQBhNbrrNBbWVbNhr
|
||||
nSpRZRjpcHqpCpqnqFRGmvPLtLGmCdCsGLLdtC
|
||||
PJPLPPHDdPvdnbctfcpt
|
||||
NRrGNjNzLjltppvpRSRS
|
||||
LzVWLjTWGLQqBgZWJWBBFg
|
||||
znzccGnswWrWNCpvvdTCzddC
|
||||
RfZlRDDDZflSBMhhhPSMMZpmpHHGNCGTmCJTmvmCvJGR
|
||||
GbBMhhbSMhMffDMZPggSGfhVWLwjsLttWtrjWscVLWnQWswn
|
||||
jwRzdZZhwhwHSQqpStJHhp
|
||||
GVGPBvNPvffpvtvp
|
||||
nsGGDVtFNGgGWjWlTwrwTmjwTR
|
||||
MQtmmMMmnHGGTmhw
|
||||
llqvqvvpqdvvrSfrpSfdfnhFSTMNDHFMNFFSGFwMHT
|
||||
JqvvRgpCfrzCpqqzdfRpRllWZZBQJbVVtMttsVWJbjPbcc
|
||||
zgqBczqBbBGjdHVgdDFd
|
||||
lNVhNNnLtZZZGWjdWrSW
|
||||
PCQhNflCtCwtJwhClMmVcRmpbPqTcmBqpm
|
||||
wWbqbTwVrQLqlMtrZtZffNfMfP
|
||||
vhjqqRpRvZsfssZN
|
||||
ccBjJBqGpRhDGbJldHlgLwddLd
|
||||
hVScjtgcchVhSgZJSchVwLbNLWnLNwwnwrbWNLgr
|
||||
BzMdBqzBQzZQPpfrsrbrNdNLsrRR
|
||||
zPMzmmGpmzGlFQPPmlZPzSVTSVJJcSlcDhTlvSCtjJ
|
||||
hzdwlqngZQvDfmzF
|
||||
vcRrcsVNpVQsFfBfPPQB
|
||||
HCHVWVcCpNMHWRjLwhvhggdjvggM
|
||||
LBHCTPzHHBcClwppwjjNNl
|
||||
JddZMRmmssVmvDvJddSJWVWBwpQvwfpwvwwfrrFNQfwjpl
|
||||
BsVMVZDVZssZhMhJqLzhzzHzPTPnLGqb
|
||||
bcnNQnBTvvvWTQTJhdHJzhSjpJJjStjd
|
||||
mMwqwVMMRwhBtjdSVBVl
|
||||
GfsrwCRmZBcZTvBf
|
||||
bBjQmmmqWdLqvLbWLtNJccNZZgCBCZgCTg
|
||||
phfpfzpHPDwfMwvVzlhlJJlggcZgZcRFFlCgZg
|
||||
zfhpMMDpVVzzhHhzzMMwfnMfSmQmbQvvWqWjmLSqdQmrqjjn
|
||||
ZzdcbGTwLZwPPwpMPWpjWPpWChBC
|
||||
nmznNRFHQrqQvqqmmMfWWWpMFjspWFMWjB
|
||||
zqRDSmDrmvnvntGccGdcTVtLTlVG
|
||||
nfnVscTcDzsZqmRtjtsqjJ
|
||||
wnnhWPWLBNwPLHdQdWdHPHLdJjqRRqrvjrmqFtvRqtQRqFjm
|
||||
bWhHdBBLdLnShWHcTVzCfCpVDTblpT
|
||||
WSjVFSVTSWvgvFwpgTTFsfdVclhNCfsHnHlHsCfV
|
||||
zRqLqZqZZQcdNltfHzsd
|
||||
ZqBqGLLRcjWWBvTT
|
||||
wwBqgZfbgbZsvWmfJrtFrdDttqdFdLct
|
||||
SNSSVTnnThnCSPPnzVztQJJQdLPtFcGLdFGDsD
|
||||
lSlszRVsRjmmfjfRRf
|
||||
NGzGWSLzMdQtcctbgWjt
|
||||
vqTnfVVHBffnCmHgMtrrrHrgtcrt
|
||||
vqCDVlFnnCnnBSzlspSzLSNMLL
|
||||
rwVlfVMRSTqTgRhT
|
||||
pppjLtpZjHFHNhsctSqDDVtnns
|
||||
HNjJLFBFHZZzWbVBZGfwdGrMfCCfGvmzlM
|
||||
zFzztqWnJttqqzJtdqbtqbPVMGcGZwgPGVwGQjwCCggMZQ
|
||||
hssLlrsSrBmBrZGSfgwgSwQCcj
|
||||
BmBBDBHLrlNhLNHrpsDvLJNtddczdRzzcTqJzzdWnc
|
||||
pLWcpGSscLQPDzLBgdbmdZHBHmZB
|
||||
lntfCfVMvtttqVqnZHHbbBZmwwwCdHhc
|
||||
qqRJFfRFRNlTzSSWWzSJpc
|
||||
DrphDfFrdGGjTTgTgCSV
|
||||
vbsMZPnPvqHMQvtZZPWBBVVBJjWSVTPjJC
|
||||
nMbnsRSQvvLRMsssQhdFrcwczLlDrrDzhz
|
||||
LLlDQlcLDqLSlCDRlRDCqTTzzgNzShSBdZGBFBBgNG
|
||||
nHnMwPPbrWwpmztdMtzFZZFtTN
|
||||
PJfbZmHrpJfZDRLlDlLcVsVJ
|
||||
wZwQsrrzQFQSrRSFbzDglcdCcdljjdlljcvslLhv
|
||||
VPqGJtqqfnJcCLFllFMGcd
|
||||
fNHPJWpmHfffqJHmwzgbrBDZrDbFRQ
|
||||
HggtSJtzrgltshlTsrzbzsgbFddfffDZwZRZZZGfGDRTNNZZ
|
||||
LnjWccmQBPWqmWPqMfFNdGBRCDFFSfDfRd
|
||||
WpMjWpMcWSjqqPjQLmvmjMgllsbgbtvsrrtvJgJHhrHl
|
||||
PMcMcBpztMztzPPhbSgGSvgfHD
|
||||
nsmsVQVZVQmTRmddrLgfFhfLgLDzgvffDhbF
|
||||
dwsjrQQrVwTmZRTzsTdBcjqlqWpcCCppcllltC
|
||||
DbVjbjwNMDTCVbhbTNDrVTTmzFGLFLHcLHzmcWFczLHwmH
|
||||
PPWsfBZngtZqZZnPgZnPqvmFmczgRHGmGSRRSSLGFF
|
||||
sntBlWPdnspnnPQZtnNNNMjhMNrVMjMThjpr
|
||||
rCrCWVvvWDnBWvDnWDMCMZTpThhGGhGRGqGqZmhZqV
|
||||
NNjQMzNzQjjwNmJNmZddpdTG
|
||||
QwtwLPcjPtQlHSSslzwHSlPQDfDWsggsvvBvDvnvgngCnvFM
|
||||
ZDCbvbDvvHbCGTWpZTtWWQnn
|
||||
hLqzLVhVwNwVfMnJrfqMzWrQddgmQQGdgpgQGmgjTj
|
||||
wlVNwJJfVRLPRnHRbFHRsP
|
||||
lLmvLGRCrmDwVPVsjmtBBQmt
|
||||
NSHWNbzSHWpSpfChqqJPnzBJsBPPJnQJ
|
||||
pWcHbNfWpgZcWbhbZSgchWpRdCZMMdGDFFrLwlwMRRZFdd
|
||||
PnNrFVZQHNDrmNQPflbhbfqbvhwbVfvq
|
||||
TCdTtpCtCWTBMtjTJMWtBMCLSfvbqqzqbljflwDLvLjLLf
|
||||
MCCGcpCJRWTTMGmPnDFNQQnDns
|
||||
FhSmttZmgLjJVMlVGllGjcrj
|
||||
NRNvNWNCdnNrBvWvwRdWvvvRCGcbVVQbMQGcGcVcMclzVVlG
|
||||
qwBsBWwnvdtHJJSrtHsr
|
||||
wnwPrnBBPgqRPjhgCRGCLvvbRZcJvCbb
|
||||
dWVdVdlMHtsTslMtzztFGGczvvGJzL
|
||||
fMflHpddJfNNVfNWWmDqQpwBgwnjPBQDjqBh
|
||||
WttGctsNCNrfwTMlBtlr
|
||||
HJLzLJJVnFjHbnbVjDHDdFqwwffTTfTGwrqwBBTT
|
||||
jgVgJSbnHjNWsWCSWWGG
|
||||
ssLfHLvrrfMMlBMRMfpd
|
||||
qbbhmGCCVDQhQQVzDDbqmhMBtDZdBZHlddpltpBpdlJd
|
||||
QhQbzqCGzVzSbqzLHjLgrcjvPSnnSL
|
||||
NGGZGsGFCGvCcnCcgnZWrPHjsJjHjTDjJHfrjHDP
|
||||
RzzQmwwmdRRwMqRQmZwtfrDPfTfrbjHqrDPTHr
|
||||
MBLphmLpSzdRlnWZCNcGLgLG
|
||||
LwPPHZLLWRMWMsHqTCjmTTjSTn
|
||||
lFpNNpzplbfphzNcQzVcpvzsnqTsggmnjfgqCDsnCDqsgS
|
||||
vFJJhQVhbcVddLtmWZJdmm
|
||||
GwMNMGBMRMGjdSGsDntglDrDGQ
|
||||
WTmPPzfmlQrsnQmg
|
||||
ZPTJVvllhBwvLvwRwj
|
||||
nlSvqqFqzfnbnvFwwsGHTBHgPfWsTrRPgG
|
||||
dMdjphVhhgdLVJhNRBGPRWWBBGPTTGHV
|
||||
thJgLpghLNLhNQMCtdMhSmFlQnzzwnbzlbqqSQFb
|
||||
ZJJLBWhJBNwJwLvgRgGRgbZqbHTbGT
|
||||
cCrfFFnzjmdrdrmmzsgSPSHSbHWPRgrgGR
|
||||
dmCFntnFctjfdVtttjtDVncfBDlNJJppwQMwNBNvvplppWNh
|
||||
GGNNNbNbqmsmTVbCDQQhDJQT
|
||||
rgPvdgMdPdBddvMcrMnvgcSwhClTTJCwClDTvLJJthTlth
|
||||
zBdWpnDBDmfFGRffzH
|
||||
WNNNWcDcdVHNQTNT
|
||||
lLvLctvrvvvPCpHLQQTZVQLTTHBV
|
||||
zltgpbPCrrmtlmrlhhbqcWMqDDMDFMfbGScc
|
||||
dzSHRCGZGdRQWQWtllWB
|
||||
mNmbLbbmwjsmsNjDmcPvpVHBVPQvWDWBBpvB
|
||||
jnmNNrLcnnjjHhSCdGMSfrfd
|
||||
mgGvfvJSmSSrbvScmGccTPCqNnRjlpNNfNjqwqlpNpfw
|
||||
zZLLQFFFtsFwWjjRqbbCsW
|
||||
hBBLBdFHddVrGbVc
|
||||
bJGchsCcHwbHfgvg
|
||||
qdlSSNqLPqlPQZDffgfZRZMghvZr
|
||||
PLtqtFTPNLlWlqtQqqQzBBmcnschGtjtnChmzC
|
||||
llNLDLzjDtCTVtClCDMHSlmwdmmdSmddwZSS
|
||||
gPJszvsBPbwSHZRQSJQJ
|
||||
bgFssFPcWhDjCzLcnNDD
|
||||
ZTGMwdhMwMJphZMJlNdVBCnncNPLBCCRPnCncn
|
||||
fWsqmfSsqvfFFFvmWjfSSsPLCwVPRnPRCmRnRRCVzRCV
|
||||
FQfQfvStwjtqsjvvQWFfWqWtlMDdGTJJGdMdhJtDMbllDZ
|
||||
DzZLpBDptpVPrrrFPqRmBj
|
||||
WsfCTTgMllCWJMlhslNsCFJrGqvmRPqmqZjGFjvmvm
|
||||
HfghcNghHhgNNfbDDZdcdpndDzpt
|
||||
RRBRdJfccVRdDJqdDrvwShwvztWJlWwSJn
|
||||
mPtCHPPmHbmHNZjjjQHbMSgrSWhWzWnnQwvzzrlrll
|
||||
tpFmjpmjFMCmppmVTVLFVfBqTqVDLd
|
||||
jtljZcTcVVtdggVmdczzzDPzvCsvRbDsDmvm
|
||||
MHHnnJMFMNpwSNprpMJrfsbPRRbWDGLbHLDRvzzssR
|
||||
rJFNvQfBSwQBwNwldZTqTtctQchthc
|
||||
WsWTWsfjgTJGSnTz
|
||||
RHNmvRLCpJclcNcvHpNcPBzgQgMnnGFnLFgPgnPF
|
||||
mHlcdbbccZcCCCNZZNcCWtthWbWqwwJsbDfthfwW
|
||||
vFFzppnHFrjmpljQhg
|
||||
JPGfPWVdwfPgQzVQlTrQrZ
|
||||
PwRJfGDBfCHMzRHNHMNR
|
6
2022/day-03/inputs/test.txt
Normal file
6
2022/day-03/inputs/test.txt
Normal file
@ -0,0 +1,6 @@
|
||||
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw
|
21
2022/day-03/src/bin/part_one.rs
Normal file
21
2022/day-03/src/bin/part_one.rs
Normal file
@ -0,0 +1,21 @@
|
||||
use std::{collections::HashSet, env, io};
|
||||
|
||||
use aoc_2022_03::{item_priority, parse_file};
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let infile_path = env::args().nth(1).expect("input file");
|
||||
|
||||
let sum_of_items: u32 = parse_file(infile_path)?
|
||||
.map(|line| {
|
||||
let (left, right) = line.split_at(line.len() / 2);
|
||||
let left: HashSet<_> = left.chars().collect();
|
||||
let right: HashSet<_> = right.chars().collect();
|
||||
left.intersection(&right)
|
||||
.fold(0u32, |acc, &item| acc + item_priority(item))
|
||||
})
|
||||
.sum();
|
||||
|
||||
println!("{sum_of_items}");
|
||||
|
||||
Ok(())
|
||||
}
|
27
2022/day-03/src/bin/part_two.rs
Normal file
27
2022/day-03/src/bin/part_two.rs
Normal file
@ -0,0 +1,27 @@
|
||||
use std::{collections::HashSet, env, io};
|
||||
|
||||
use itertools::Itertools; // for easier chunking
|
||||
|
||||
use aoc_2022_03::{item_priority, parse_file};
|
||||
|
||||
fn main() -> io::Result<()> {
|
||||
let infile_path = env::args().nth(1).expect("input file");
|
||||
|
||||
let items = parse_file(infile_path)?.chunks(3);
|
||||
let item_sum: u32 = items
|
||||
.into_iter()
|
||||
.map(|chunk| {
|
||||
let badge_set = chunk
|
||||
.map(|line| line.chars().collect::<HashSet<_>>())
|
||||
.reduce(|acc, item| acc.intersection(&item).copied().collect())
|
||||
.unwrap();
|
||||
|
||||
let badge_item = badge_set.iter().nth(0).unwrap();
|
||||
item_priority(*badge_item)
|
||||
})
|
||||
.sum();
|
||||
|
||||
println!("{item_sum}");
|
||||
|
||||
Ok(())
|
||||
}
|
28
2022/day-03/src/lib.rs
Normal file
28
2022/day-03/src/lib.rs
Normal file
@ -0,0 +1,28 @@
|
||||
use std::{
|
||||
fs::File,
|
||||
io::{self, BufRead, BufReader},
|
||||
path::Path,
|
||||
};
|
||||
|
||||
pub fn item_priority(item_id: char) -> u32 {
|
||||
if item_id.is_ascii_lowercase() {
|
||||
(item_id as u32) - 96
|
||||
} else if item_id.is_ascii_uppercase() {
|
||||
(item_id as u32) - 38
|
||||
} else {
|
||||
panic!("unsupported ascii");
|
||||
}
|
||||
}
|
||||
|
||||
pub fn parse_file<P>(path: P) -> io::Result<impl Iterator<Item = String>>
|
||||
where
|
||||
P: AsRef<Path>,
|
||||
{
|
||||
let file = File::open(path)?;
|
||||
let items = BufReader::new(file).lines().map(|line| {
|
||||
let line = line.expect("got no line");
|
||||
line
|
||||
});
|
||||
|
||||
Ok(items)
|
||||
}
|
Loading…
Reference in New Issue
Block a user