day 3
This commit is contained in:
18
Cargo.lock
generated
18
Cargo.lock
generated
@@ -5,3 +5,21 @@ version = 3
|
||||
[[package]]
|
||||
name = "aoc2022"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"itertools",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "either"
|
||||
version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
|
||||
|
||||
[[package]]
|
||||
name = "itertools"
|
||||
version = "0.10.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
|
||||
dependencies = [
|
||||
"either",
|
||||
]
|
||||
|
||||
@@ -6,3 +6,4 @@ edition = "2021"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
itertools = "0.10.5"
|
||||
|
||||
300
inputs/day3.txt
Normal file
300
inputs/day3.txt
Normal file
@@ -0,0 +1,300 @@
|
||||
BzRmmzZHzVBzgVQmZLPtqqffPqWqJmPLlL
|
||||
hpvvTDcrCjhpcrvcGGhfLHMlLtMCqflNlWPJlJ
|
||||
hGjhncHhGnhbTHczBBZVVSbRwgSgRV
|
||||
rWVQjPQQjGRWNSrWrPjcptwBpqqJBtJBBcZgMdtq
|
||||
zzmmpzfTCFpTlMlJJwBgMlqMBt
|
||||
TvLszpbhhTLmsnRQPDQGWDWRvQSR
|
||||
zGzvLlGlQHLGBQZlhBWhdjRdmdWRcjPj
|
||||
fTJNfTfNSRWPhjdjfj
|
||||
pbsbVVnpSnbVTprnbqqrzvLLgQlGLPLHll
|
||||
ZCCCsWvNvmsCsCmZLZmgMLRpQMhwQRpQRfphfprpTfpM
|
||||
tlncPjzlndctbzcPPBcjwDphwrfGGDffbDRpDTGG
|
||||
cdqnddwzqjNVWVLZZLZq
|
||||
DTLbDbRrlQbwhhNrmmfwdt
|
||||
zzMJMzjCjJJjvLjMPJpcgPpzfhHdfqWcqddwtwfqdttcNtdN
|
||||
pJCzVpCvDZBLsVRQ
|
||||
STzBBbJzRRBZBRTqCCsfZLtNNLClCsfh
|
||||
jsQnnQjjHcvQFrcPwCmtLCNlvDfftfff
|
||||
sGFscMQQMMpqzqbMbd
|
||||
QlNDWGsjQjgQllWQsbtzqTJczTJcbFmmFJJP
|
||||
MhLrhgLVndRmzJFzVqqJqP
|
||||
pSLnMdwhwdRZRSwhLZwLhdGWQjlsgWjNQWWSvgBsWDlj
|
||||
THjSRFSddTjdBTcPLcVVvVBw
|
||||
GzWnWfndWfznDfsnsBsPVwVwPPLL
|
||||
zNflzJWqqzQDdSStHNZNpFFtbj
|
||||
FSzDmsFSFlDlBzqVjqHHjHHpVgHLbp
|
||||
rTrTtTQQntRQnQJQgggHZttVgHLBLhZL
|
||||
WTJJRRQCRRJTRdBCRdvRNDFSWFMPmDlPPSsNPSzS
|
||||
WQldlMtMVQgVMQHnDGbHGGnRnQmD
|
||||
rqcZPrCFjmHlbGjZ
|
||||
zSScchqwchBzTzFzhhSlcCwNtdVWWJgsVdMtWNgNVWTJTd
|
||||
lMZqjMWllrTTspjprWWSSwgWNSVNDmWGVwFwgN
|
||||
cdCCdLHcnndHJnmCRntLBnRzDvFNtNDVzgSgwDgFNVzFVv
|
||||
BRLcCCJCmJdcRhfjPPZphrlrPqlZ
|
||||
GdGqcrrZGDrvDJJqJHcBvmFFgmFMMgMgBtMLTssLmF
|
||||
NbPVPDlljPmTmsTj
|
||||
VfQDhflCCRWdcrQwJvvnJv
|
||||
RLcWgLCqqPQLcqZwzHgwmmrmmtgwTw
|
||||
DhbhNrMpnJSDJwVTHmmTVnTTVj
|
||||
lrsvblMDlcWcfQPQ
|
||||
PVldlphHwGwJJGdjZZWsRbbsGsNWrWQbNbQR
|
||||
SqcDvTmDLtfmSmtqppfqzTgTQBrRQsbCFWbNNFQFBBrRbLNb
|
||||
MgtmTgtfpqVlnVddZMwV
|
||||
BdmfmPBPSbSNdGSdvWrwcZrccZPPcZnH
|
||||
jzzLsjsMRlQQVHwswvvZrCHrrT
|
||||
VqhzVFzplFlpLwpMphLRQQVRmSqgbdGtNJBmNSmgGbtggSgt
|
||||
DHVpNZjdZjFZWVFHpvFvzmlRzPnlfznFRz
|
||||
lrTBTsBwwMbrrwLPPfwGmGzvRf
|
||||
scrtMhMCtJBBBclbHdHttWZWDSqDSjHj
|
||||
wzqsPmqsbsfqBwPMNRMMZcZmFFNtZM
|
||||
CgCnhlvvLJgcRFNNBdCpWM
|
||||
QnQrVgHSvVHjbjTGBbbTHb
|
||||
HdrVrdqFDdZVmHgRmDRFHMnTdTssMGnLnPJLbPTbCs
|
||||
SczlScjwcNzplNzQSSfjwQSrTGGsbTsnTCnGTMCMLMGGbN
|
||||
wQlfjrhfhQFHqZhRZRtD
|
||||
RsfJDGJvzPNcjpddSWJWMd
|
||||
LLCbBCwCrCmVVnrmhQFmbVhdcdlWpjZzSpMdWSpcWczSBj
|
||||
rrLCbTwnHTvzvNGT
|
||||
wPhPhbCqqSCrtJDlqvlrJr
|
||||
RVVZddLFRZZcQLvJJtzptlgPJp
|
||||
TVQRZGVncFdTGWZdCNShHhfPNwwsWPwb
|
||||
dzLVzPSgrgDDDCMSMLLPwFmdTTcsvmwNwjNsHcFF
|
||||
nWBGntQfGNGBflWBBqlpRQGbWFvjwsbsFswbvTHjjbmHTc
|
||||
tBNJBnGBflQnDPJrPhDgrPVg
|
||||
VtWztWtqpqzWpWzqjNRjNpWTmrrmrSbnmJwSJwnMPrCSJVwM
|
||||
sDHsBDhBdsBZGcHvLHDLhhCSnRSwCJMZrPbmnMbJSCSR
|
||||
ccLRhgsLBdRsdHNTFFNNgqTglqzF
|
||||
hztlmDhPhgPlPNNgmZMCbmwwQjcwjjwMjVCd
|
||||
RSJRrRqnqQJFqvnTGrHCcHHCCHHbHHMcMvdM
|
||||
qGJsnQTRsStsftPlhPNl
|
||||
BFFBLPRCwsLwhlPlRmhcGGrbmmGjfNTTnp
|
||||
VJMVpzgqggJnrjmjNcMjmT
|
||||
VqdSZtQgZvtdzqHqHtVZdVQpCDWWFdwlRPDpWPPBCswlWD
|
||||
fCWCsjPzcbzwRSzVTzhhDLqvdg
|
||||
TmJtrNJrBLSLJqgS
|
||||
ptNTQFHrZlnpFPwsWMbRjCpcjR
|
||||
nJmQNCmbmlllmbClbfMLjMFqbGBsdLFq
|
||||
ZcgTWcTnMqqMTBqF
|
||||
tPgctSnPctZZgDWzZgQHwNmHlhlmzlQhlJlw
|
||||
ZpTCwpffdslvgShCBhqhRz
|
||||
FDMPnNFNmBPzvRPRBg
|
||||
nNgMrnnDGjDmJMmnFdZTTsdsrZrslcwcQr
|
||||
pTmczpCldcdDDnPttpvWSqbpJf
|
||||
jgjRZMGHhGLgQrjvPWzPJgJvzStbbq
|
||||
LGNLLNBBzcDFCBwwFC
|
||||
nJTTqnrNvTzNMzzNfqrTPrJnwpwPpZpsHccZVsBRpcVHwpcp
|
||||
bgDhgbghLWmFmStctVpZtBCVCCpfZp
|
||||
LLSgLGSjggFGbSSbmMnrvqvzjfzTNrJrqM
|
||||
RRpDmmPMTjwfGmJQgQ
|
||||
WsNscdnvvdVZFVnnrZbjjflwljlbzfGFjQjq
|
||||
NnLZsNnrrVVVcvdBLTPCPCRMwhPMBMPhCt
|
||||
lbVvzngGJnVbJHpHtHNPpdSQvc
|
||||
TsMBswFZsWMWBZMNwPtNNtRNHcNpSQ
|
||||
CcZCTrZDsjZTsTsshWhrWrTnfgbLDfJzVVLVVlgfnzfVGV
|
||||
JzTTRtJRZWmWjrMHCT
|
||||
DDFGlLGcGlSSSLsFGBspPBmNMBHMghmWNmWjWCmWtH
|
||||
nSSpnbsGlLDnpPsSSspFtVvffRQdVzqvvbqdfVQwRz
|
||||
sMhzszlHHDsWbthHDqsbJjpLNtmjVJmVLLVLVLBp
|
||||
nrTPrGwfPLdprzJzdL
|
||||
wgPQcTGGzgccwCgnRwgRChFhlWSDqWWQMWhssSsMQl
|
||||
NSNmwtpSpCpvMphCsr
|
||||
PHcRGPLJMrsvzsqG
|
||||
QHjbnRMcfbPbQZmlZgZlgBBQ
|
||||
cPRPbhQjbQRdtPQdLqLHqzFZjCFCqLjC
|
||||
mmfsnnwrfvwrfSNZFzHHLDCFNlLlqDlN
|
||||
wsmrwswwGTffMrBnmQttJtcMZQQtPJPbZc
|
||||
MvBPDDRRdnnvHPCHZLHZsFLL
|
||||
rmJcbVqbcjWwWjQHLzTZFTHSzFrpsz
|
||||
cmwllVqqGJbVVVmmqbQcmgRnRvGhGfgDRDZBBBvRdd
|
||||
nMvMhMnvhnbTZWSSZgHmGJDFmmNDzBmbNmdGBN
|
||||
rCsPLRCssRjrLLsrLlwRVrcNJQfDQfdBmmfNBGJNzmDPfB
|
||||
CRjCpLltgtJgJJWq
|
||||
jshCzJpjzTPpmCWvSlpfwHfSWglf
|
||||
LQMMNMnHtDtLVRvwwgRWlldgWD
|
||||
qHVrQNHVMFQtrrBBQMBcrrZsZbzCZhbbJZJsmmsmFPTC
|
||||
JZQZnsQNMqTngZqJBVfBfPPVBNrwvfPw
|
||||
SSmDstFjpDpCszDjcLLhrPVlGlrGGVBwrvwVPt
|
||||
FSssFcLjFjbmFFCzjLcFLRDnMJnTHRnZZTdWqZZWnMnRnZ
|
||||
GbHRHpldwGMpWhHpCMBlCbRdVSLhnqJLSrDPLPPLPDqVDrhh
|
||||
gvjWWQvgZFtQFFNqLnVnDnSJzzztDD
|
||||
ZccccfTsffHdWWdRWwsw
|
||||
ClCtbHMlnnPPlszV
|
||||
gSDWSLgWQWQJJNWqgtQjPsnfcdVcLVdVdzfzVzff
|
||||
WQgqtFQgDgQSFqJhqhSJvNDRrZMZHwHMCbZhTpZbGHMTMG
|
||||
pZJZlCQtHFhPfdNfCh
|
||||
zcmLSVczwcMcLDNFHdLPhPWH
|
||||
szvVVnBmnTGQtHTQ
|
||||
RVVCNDlNGzlGZqHGHWqWhGqQwH
|
||||
ZFLFTmpLvvmSqsbb
|
||||
TrfpBfJpJMlnnNfNZD
|
||||
qHHlDClHhltMqQsHDhHslGznwdTnzzwDGSdfnwGnwG
|
||||
mZRNcNcLLPNPBFFbbPmLmbZFSCVfJJTVndVfSwnRzznfTwCS
|
||||
CcCWFbbBLCWtgWgHjghqvv
|
||||
TjbzlnlFmfqCFFVVCRWr
|
||||
PhMcLpPDtMLpwPDvLPJbMhSgVCGqggVqQgCqCgCgSWvv
|
||||
btbZbNZhJDJJhDtwtsTTTmBzzBBmlNlmHj
|
||||
FqhjWtqlqmmsnFPTCvMCQMTTCjQd
|
||||
pfffRfLpgrgGgzrNVzzpGVzRCdMCPJbwwcVMbQPCJVMVdbww
|
||||
DGGDZRGrHggzSsFQnnWShmtH
|
||||
vtHVVMMrvVMVrSHvLgvlHcZFCnRCZcccZtRRZfJFCJ
|
||||
rdDjGsdTQDcNZfdncCRR
|
||||
rBDsTwBbjbmbbQswswPhqVmmSvpVhlvvqMhHhh
|
||||
vGBLrqMNvqSLBvvrNbllLHfwStWWtFttccjtRtjtcj
|
||||
MhCDJmhMDzmcRRcjzWfztH
|
||||
ZQDmDhVVCQbBVdVNMvvv
|
||||
ptCtCzhWPWptnhVzzpGZbZTjTjVjFGjVFgVl
|
||||
fQswRRffmRqZlgrqqFjjSgGg
|
||||
HwsQDNNsDsmRLLHmffsfvHptBnhtzCvhWpZWBdhnMdCh
|
||||
RlHzzTqczBPfbnvcpB
|
||||
wVtNwpSZstppwwMsZhsdnLvnbtBBmbnLFFdnmF
|
||||
WNQJMVWsZWwGJWhhSNrQzlgHrDCgQRHpCHrl
|
||||
RrZWpJZRrZpdTGstlchLGGlLMd
|
||||
NqjDPCQPnQCSvtMzSLhhjM
|
||||
nQVQDDDDfwBwNCVCNVFNpWpgJgrRTmLTmTmgRTWF
|
||||
SHMcrMHpcjGcjSrMMbvSvvSvwFTLJwJNtFGFWJNtDLFTLfWN
|
||||
zqRnPfzQCRzqsmRPzznhszzLtLwQwwFTgWWLDLgWFTwTNQ
|
||||
qVPZmRZhsCZPhZlRCqRRRCbfpccMBjvMVjdHjjMjSvdf
|
||||
VVQdHwBZLVltlddtBczhrzvGcWWFRwgsFG
|
||||
TDTTTqqTSSqjqnmTmPqPPmTmGhRszvsrzsjRsccgzrRzgWGF
|
||||
DpJPqpWqHbZpllpt
|
||||
cCSCFsnnZFnscDtNdJFJtJtdmb
|
||||
VgBqBsqRrHtNdzmNrt
|
||||
BGLLVVjRBsqPBfsGwPsMfSSZCSfTZTZQpSphfS
|
||||
plCHCHlgglHHGpNbtngNrDvBDpfQDBQfZDfWZVrr
|
||||
mTmMLhRfwhsLPQvQZDMZQBQWMB
|
||||
cwsssmqRTFFfFgtbCtGl
|
||||
LQPPrCPnMZwqtRMn
|
||||
cWTSlJWlcplJdDTdGdpDlGcGgqmtwwZtqRrNRRmRdNZqmgNq
|
||||
GSJcJSjsjTpsvWGWBHLLvVVBBBrFrzVz
|
||||
NVPCSPMNDSNFVSWCsJJJmpGmZZGLLcpZLHGGtsHt
|
||||
fwzlBBqghqvzqqlDrHbpHjZHmGZbLZrHLb
|
||||
dnBgnDqQvwRnSnnFMFMP
|
||||
BCbPsFFwCRHmDSBmWnvDDj
|
||||
phhZVzdpVfQZphhZpRhSVnjmrcvvnrWtDrvWDS
|
||||
TfQJMfLphMhJdfdzpQJRTPbwHHNlgbGwsTGgCP
|
||||
ttWLlnnvnNnBBtlTqWlpvpndQdZsQQFssFDdsRFdVdRNFQ
|
||||
jSgrScrbGZSGrrCGsFVMssFsPPFcDDMV
|
||||
bzSmJbfCZCbzLwllflwqtvvw
|
||||
zmFTJwFLPmzLztmjDzTJwfNrdFNrFppBSNRGNGdbrpBR
|
||||
gqlhWQgsZMsvqMlMMvsvqsNlLbcdppbrRpdbbcSrrbbr
|
||||
vssCgVgCsggZQZCgsnsqWgWvfJPDLwffwTPPmzTnjTPmPmwJ
|
||||
SpcRTPQLBLWpNNzjmmwwwRrR
|
||||
tGlfvGhfnbDlbqlChnfFMrwsmwNssTMHMHjFwv
|
||||
ZlhtCtffCdWcZWZVVT
|
||||
jTTCcWHWJNgCGTzTmnzrmnGn
|
||||
BwRRbFvtvvQmJJFMpMJr
|
||||
ZBBwLvqbBZsRsbVsZSqbcZdJjHHjhfPCJfJfHhgc
|
||||
VrnDSvvrLrfTdTLGfdRp
|
||||
zcJzmcFcHGfdGmWTVd
|
||||
tHsMhwPVctccHFHFcbSDbbPjnNbBnbvBQB
|
||||
QttWQwLTnLnWTtnffnLQSBFVjNvBjBFNgMdCsVWsjv
|
||||
pDqcmmRPHqgVBddjvN
|
||||
DcclzbcbPbJLnNTfnw
|
||||
plRcpsZDGlGZvWvMCNcLtttq
|
||||
SrfrwSjSVrSjwbmSrHzmHJCQQPQzqttNNQJMzJtqMW
|
||||
wSHVnfHfWwwHWFVfSnfgmmRsslFZZDBBGZsZsDTdGRTp
|
||||
qSFQSgQNgQBrBHHcrW
|
||||
VTmjVJLTwlTmwTVmsMJMVlJmPvcbvvbCBbGBPjGvBbBGWcbb
|
||||
DnJTZwmnZRhnpqNdWt
|
||||
dTVHjZLLZDVCfVHtLDDjQbscjWbSJMJPjsbWWb
|
||||
FnqrnmzzFllmsWwtsFtQMMFc
|
||||
lmqzzzngGmlNNBqGllzlBNRvptHHpTCHpDLpgDZdgvHvDD
|
||||
sdRZQbCfZTSTdlfTZCffccWPHPPcPPwLwctRnLWn
|
||||
BBJDzFVgCDrCJrqDJJhqJVVMLPHwcctFwcWHHGLcwGwGHnWc
|
||||
ghpJgqqjCZbQdZpd
|
||||
tbcpzbHSszcHBgqHGZgJJJhhww
|
||||
jfvdvRTffQQrrFCRFTnGwJRqNRZVpJGZLZggLh
|
||||
nQTjTnMndlTdQFMvnrClCnpzmzDtbbmBbcPSzzlmmtzP
|
||||
BqBqTCSTcqHsJHHM
|
||||
WWPGVPLtzVgWtjWPGzVjzVGcbDhPsRbDcsbJwNRswRDRss
|
||||
VQfWjfLFGWLjdFfVzTZZpJTpnmlTrSQlBl
|
||||
jLNsZjqSHCsGdsmpsm
|
||||
MvnVFzWMwMVWzfnVDwfBMfnnrCtdtPmPlRrdrJCJrtPDrrPD
|
||||
zznfFWwMfMfFMwVTMQFnQjhjgjSZhCNbLSTcHHgbbC
|
||||
GGtssttVmvnnGNMQrrVzgwVrCWMz
|
||||
FdhfhhcCDhHLfzclZMcrwcQMZM
|
||||
HHqqCBhHSSpdmjGqmGjtjtjj
|
||||
bbQLtGMQQtQRQtrDtGprrrbCqwplZhhqSqmdwvdzqqqhSmpS
|
||||
FsJjJBfnsJcFcFfjVPjWBzldqhqnlZZZzzhmnSvSnm
|
||||
JPcFfFWjFHJVVsVjPVscsDlLNRHGDbLRMRCDNrCGbG
|
||||
JdMdlMRJnTwdvcjv
|
||||
CDLHbNSzzLFgHvnTjrswBNBTNT
|
||||
QgbvzSFQmZQPQQRW
|
||||
NTBrNzrpjjjCwGbB
|
||||
FRbQlcvFvcRQQlRsMlRRRZjwCqMwjmjwJZdLJmjCZC
|
||||
cVPPQcvlWDNhrbPz
|
||||
VdbVtbbZJdtJVVdDVZmTLqqTSQvNLjjDShhvSG
|
||||
zplpnBnFpnrrlghGNpLNqHvqvjNj
|
||||
cWncllnlPFWzcMwtWWtsVLVRmJWCds
|
||||
ShLSTnZnTSttTSbLQdfSZTMwcDHwwcHnJvDHnlnlclMM
|
||||
NmPMsssRrVwjDclHJwwR
|
||||
gNNMWGzNmqGdtfZTbGGb
|
||||
sWNNlRHnmJtmntJt
|
||||
brbbBTbbFbCbqqGgBTrCfmQVVZfSSQQSVtJZSrVZ
|
||||
bbFqvbDvvGGLGbCCtBGDLbLlcPNHhhccPNcdPPchlsdR
|
||||
DCFvDvnCnNfMBmMMslDZML
|
||||
SQQQJHwpSgJSJHQWSWHqJWWbmcBBBLLTsmhhTcZbMhmlshcb
|
||||
RJRgpJHssgwSQHRqsQPGGjjtNCrrFvvnFjjPrP
|
||||
mThmsgjzTPjMpcvtWP
|
||||
GNNBVqVGNZbbNbNqqZQVNVNbWcpdtMCcpCtMWCdCPpQccmpp
|
||||
VSmNrmmbBfZVlsrssrLTRhRhTn
|
||||
TdmCvLDCpTRNTdFbbWnnSWCfhjbbzn
|
||||
GrrMsPVGcQHBGMbhjjSgWfHHDbjb
|
||||
BPBVqqrQPsQqwrrmmmJdRLDDqFRplT
|
||||
fpDDJljDlCfDTjprjrfbddWthCSCtdPPQFhSSSWW
|
||||
HsLZgMGbgBBsNzMvGbdVtVQzFRQSthhFPdtP
|
||||
sMBmGBmbNvLHGMnrDppTcJmcjpqljf
|
||||
ptSpSJQqpbNGGDDhcMWrlNHcZZWWls
|
||||
zRLRRRjvvgjHMMsMpWpc
|
||||
vmCPLCgwvwdnCzmvLbpTbVQqJJPbJPpTVq
|
||||
TJCfhhJVFffrJJQQllNWcvWhwvWD
|
||||
GPSGjjpLslBbpLpLqqqPDvdwvwvNzQWGzDDNdzGN
|
||||
msbRjbpPqsRpHnlZrmJlnVHT
|
||||
GGfFsCCTvGDsfTTrhsCMMzptZJMdpdgtrpdMcV
|
||||
LBlwBHPSqjwwlVggHpnMZcVHMt
|
||||
ZlZZlBbRPGGTGfmRsD
|
||||
CtCjbVvzQQZTWVdd
|
||||
MlSqWlmsmGBSHJHTDFHZ
|
||||
pcqsmsplwsqclwRtRWgtRnPPvb
|
||||
zCrzCrsdjrhGDCFqGDjRRPtpWfQQcpfQZcCZPp
|
||||
VSVwVMgLHHLTwMDTMMVnbWPRZQRcRQPptWnpbZcb
|
||||
MNBBBlSMvLVwTlVTFdNdhNhFsqsGDrzm
|
||||
rBLWTwTThWwVVDTwHBsZZWppvpGtpptppmRvFFFMFMfL
|
||||
qPPNCCbqcbcNqbqQjjJQqzjRpptmlpMGmMlJtftmtFHpMt
|
||||
QnCgzzQbbQqPcPQnncbdQdnVTwDssZgrShBTVgZZsBSDHT
|
||||
PFGJFqnfqmPgFJQPWdbLdpDRhbphWjDm
|
||||
rclNHvcrzCNwrWRprjdMMMph
|
||||
wsZHwZNvRRQsQqBV
|
||||
LqlGCPlPLTCPqqQlpqLlWfBfWgcHNRJRfWNsncGH
|
||||
VVtdwVtDDdVmhrdwSBmjbdzNHgfgJnNnsSnHsNffHgRsgR
|
||||
wVzhbjmDbDrwjdbztFDDthMCvqPppZQBQLZQTqTvFTvZ
|
||||
BnQnQFwRmRwmwdBSFDFnmSDVLCJTCTppVVmGLVTCLcgVpC
|
||||
ZlWvhvZjNrbNvqjNhlfPfqjCGHrsspggTpVLpsJCpcJVgg
|
||||
vPzNvqjWhqFzGSnRGMDG
|
||||
wZnMZzzZZchDRtVsqtCtwV
|
||||
WmWpWWmPPWrmrmBmWrTlTFPNVqVCRSDCQHcqVTtTqsSDSTSD
|
||||
PrppdFlWWlfrWmpWFffrdcGjJJGggnnhZGdLLgGGndvz
|
||||
FShHNmNhRhNJmBnQBQJrmP
|
||||
VTgzDTjwfffwzDvwlcczzVSJbQlBQSWBWCnPJPbJWWbC
|
||||
tzSVtzvSvGSRZqqFMNtpRR
|
||||
hPZhGDZpnCGtDhznjmLmdJffdNzJ
|
||||
glwsSrQwBvLdgLzdcj
|
||||
QsRbHllzzlHwHlBszWlTBFbpDPMhbPDVGpGFpPtFPp
|
||||
SRjStRDctgDSBzLvPvNrDhmPLr
|
||||
QqTHGTPJmmHmhNmH
|
||||
TGQZsTqFnQZCJTPsnJnZQMjVRBVtcVRSVRBlwccSCtBS
|
||||
bbsNsvsvnNPTRRllbblLqhtQCqQSLCGGHSqHNC
|
||||
wFpzFgqVzqVJWFDwqJDmSBBmHBHhShLQhCGSBCGH
|
||||
MJVpFMqgwMqRRbZsMbZMrP
|
||||
PPdDhvNDQdmgQPZmQVHHtHGGWVGbffWGvs
|
||||
MMLCTRRLlLclTLRMRLCwMLHWVctbVVHWWWFfVjVGsFWW
|
||||
MRSMMlpTJRqClBCRqBDnzqgQPnqgznZPZqbP
|
||||
MrMNPNNpjvdprWtrpMsthqBfqlnfqcGhVBqFRcnqFG
|
||||
QbDgSSQbgSDDmDVmlqSCRllRcFqnqfBl
|
||||
QVJbVmwwDQbzVTgbppNJNMWNjNNPrdpM
|
||||
WwJJNbtHfpLpVgZZPVFhZh
|
||||
vmmqlDvRvRfqBSrlzmmMjRBhcVhQVZhVghCQQQQTcTrPTP
|
||||
jSqMmqRzMDDjvqlBqsBMBmmwGNJwJnwLNfbGwddswnJtJH
|
||||
RLgRmRggbvbzzPmmRNmzsQWFtSGNtwSNQnntFwnnCw
|
||||
pDBrBHpHhlldphHBHhJVFSLnWWFJttCtQSttSS
|
||||
hfHrpphHBppfTvmzgMmbLbgf
|
||||
7
src/bin/day03_1.rs
Normal file
7
src/bin/day03_1.rs
Normal file
@@ -0,0 +1,7 @@
|
||||
use aoc2022::day03::process_part_1;
|
||||
use std::fs;
|
||||
|
||||
fn main() {
|
||||
let file = fs::read_to_string("./inputs/day3.txt").unwrap();
|
||||
println!("{}", process_part_1(&file));
|
||||
}
|
||||
7
src/bin/day03_2.rs
Normal file
7
src/bin/day03_2.rs
Normal file
@@ -0,0 +1,7 @@
|
||||
use aoc2022::day03::process_part_2;
|
||||
use std::fs;
|
||||
|
||||
fn main() {
|
||||
let file = fs::read_to_string("./inputs/day3.txt").unwrap();
|
||||
println!("{}", process_part_2(&file));
|
||||
}
|
||||
68
src/day03.rs
Normal file
68
src/day03.rs
Normal file
@@ -0,0 +1,68 @@
|
||||
use itertools::Itertools;
|
||||
|
||||
pub fn process_part_1(input: &str) -> u32 {
|
||||
input
|
||||
.lines()
|
||||
.map(|line| {
|
||||
let compartments = line.split_at(line.len() / 2);
|
||||
let overlap = compartments
|
||||
.0
|
||||
.chars()
|
||||
.find(|ch| compartments.1.contains(*ch))
|
||||
.expect("There should be one overlapping item");
|
||||
|
||||
match overlap {
|
||||
'a'..='z' => 1 + overlap as u32 - 'a' as u32,
|
||||
'A'..='Z' => 27 + overlap as u32 - 'A' as u32,
|
||||
_ => panic!("Invalid overlapping item"),
|
||||
}
|
||||
})
|
||||
.sum()
|
||||
}
|
||||
|
||||
pub fn process_part_2(input: &str) -> u32 {
|
||||
let result = input
|
||||
.lines()
|
||||
.chunks(3)
|
||||
.into_iter()
|
||||
.map(|chunk| {
|
||||
let lines: Vec<_> = chunk
|
||||
.map(|l| l.chars().unique().collect::<Vec<_>>())
|
||||
.collect();
|
||||
|
||||
let overlap = *lines[0]
|
||||
.iter()
|
||||
.find(|c| lines[1].contains(*c) && lines[2].contains(*c))
|
||||
.unwrap();
|
||||
|
||||
match overlap {
|
||||
'a'..='z' => 1 + overlap as u32 - 'a' as u32,
|
||||
'A'..='Z' => 27 + overlap as u32 - 'A' as u32,
|
||||
_ => panic!("Invalid overlapping item"),
|
||||
}
|
||||
})
|
||||
.sum();
|
||||
return result;
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
const INPUT: &str = "vJrwpWtwJgWrhcsFMMfFFhFp
|
||||
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||
PmmdzqPrVvPwwTWBwg
|
||||
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||
ttgJtRGJQctTZtZT
|
||||
CrZsJsPPZsGzwwsLwLmpwMDw";
|
||||
|
||||
#[test]
|
||||
fn day1() {
|
||||
assert_eq!(process_part_1(INPUT), 157);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn day2() {
|
||||
assert_eq!(process_part_2(INPUT), 70);
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,5 @@
|
||||
extern crate core;
|
||||
|
||||
pub mod day01;
|
||||
pub mod day02;
|
||||
pub mod day03;
|
||||
|
||||
Reference in New Issue
Block a user