Skip to content

Commit f37b6b8

Browse files
committed
Solution for day 3 part 2, closes #4
1 parent 058decf commit f37b6b8

File tree

4 files changed

+367
-0
lines changed

4 files changed

+367
-0
lines changed

day_03_part_2/Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

day_03_part_2/Cargo.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "day_03_part_2"
3+
version = "0.1.0"
4+
edition = "2021"
5+
6+
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7+
8+
[dependencies]

day_03_part_2/input.txt

Lines changed: 300 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,300 @@
1+
GGVGlqWFgVfFqqVZGFlblJPMsDbbMrDMpDsJRn
2+
LwzHtwdLHHwDrzPZzzsJbJ
3+
wdLTBvSvHvZVGCjhfN
4+
HsSSnZVHjjssZnJpSJjBHHWgQGcgqqQLQdQFqNgWgqGNDg
5+
rmmRwrtfThtTrbCrGGGcLBDTqDBNQLdL
6+
mwPrrbzPfwvbzhwMMnnjHnBjZlnzMM
7+
gjjdMBgdqdTpJpBcjgRRRlqnvrqfnZtrtZDw
8+
zHShWLhCszCWHVbVzQWCPtQvNZRwtfftfNnrnftlfR
9+
PzPSssHbVhCLFMJFcMFJJMjdJw
10+
ZqJdtpfpjmpJjpnwWdttTCDLLTQFNTzTzrcqrQqc
11+
MsSlBGvBsSGGSlbGsCgggNTgzNLczFQNrNQVQcFzFF
12+
sGHHSGllhvMGhSRGCjtjtjnjnnmHWpWWtJ
13+
tMdjQlHPHsGjsCtsCpwwqfhfnnFMDMrpfD
14+
SbNvWvBRJRWwFSgppgSrfg
15+
RNcNbvzJRcVLRVzTRFLjdHCQttdZdPlHstPl
16+
QWqgpdBflpHNCNWNHHPm
17+
VVMbbJsLFVMhrMJMmRjFNHwHjjCTGSSRFj
18+
mbMsZzsLmVhJZrcLcJhLMtnqvBnZdggplDffvlnlvnDn
19+
prnNnsFnZpnBNdNtFrNnzNQQwTTQZqTHTQJQMwHDMDlZ
20+
jgfgcSmbLmhmcPShghRdmwJTQjTlqGlJQJHqQqGHqQ
21+
hRVhPfbCgbVggLVRSSmRhRPhrrrnCzzsvCvrnvFnNppsvBtd
22+
QJLNDWSWQdLFFFhLdt
23+
npHhHMsfsjpZjznRtmrMCdBwFBFrBdmt
24+
HsjHqRRfnnHRsgfHffZspgzqDGQSWbQTDNGhQhSqNPhDWWbT
25+
bsCmFDsGZCNsDmLDLZBSHSJTHnrZQMQSSQ
26+
jqRpwvfqnnRQrftdBMHddB
27+
phpchwpzjpvwRzwcsnlFsssPCCGzDlsD
28+
rMqzVQfrfVZWZhTdRTQL
29+
cgmtFtjFFJDDtFvSFRZdLlhpHZddmwTZWh
30+
FbcSTtctcvFTJNgtJDGNPnCqMPMfMBfznGVsrMCq
31+
wLJfGJJPZLBfwSLGHbqmhhDHHhFDzfhv
32+
FsnpFjVjplTQCspNlCDbzhMMbqvMvsgmHDqb
33+
lRdlTdTddllpRQFRltVVdFRcwrtrcWWcPrrWPrPSrZWLPc
34+
VGVZhTppGTfPnJVJrFqbsmbSSshHqWqRHF
35+
llzDCzlBLdNcCddlMMNBdCCtWHbFqFRRRsHjWtRwSWqbmjWm
36+
NbcMBBvzzMQLCDBVTQQPVrPQPPZVPp
37+
cdcgfmQdqlqhzzPjzfwpwf
38+
GLBGBDvbvRzGwtnnmPpp
39+
ZRCZBRFSRvLRLFvvbLLFQdHMTHTlQlNqNmqFlWdH
40+
vzjzvHtcHvJcDStLLGSShCbbfF
41+
MWFFTVZRMmMgdQdSQLwQrQwbGw
42+
gFTmgmVZssRsWZRNzJlBHHnnJDvzNPlP
43+
rHrvHpmHZfdGDDGGZd
44+
cTlMsNhllMhGchNPCBlhMQgVDdgDSSWVbWVwRQwRSgbV
45+
lnBjnNNTTMnCTcChPNhMvtzvFGLtJrjFtHHHzHJm
46+
lgpdZZMmGVVzVZzt
47+
HfHLrHqbPbzJJzRJJPTl
48+
HsLWWbDqFrqlqfbsbDqDBncpgFmmvpnmmgpvdvjcdM
49+
GpNVbTpJJNvMBMVvJTGvhnWQQScllnhhWlhVSznV
50+
ZjswwHHLZzGnjWjSjl
51+
sHdftLLtgLfwdtPmHtMbNpMTpNqGRbPvTqPv
52+
sHSNNhNwsllGSGGlWSGWSsFrrVbQrdmFrVrrmnrHmrHr
53+
QQMRZDDRcrcnmRcV
54+
fJfCPMJCzTMZSGsWwsWBwqQf
55+
HwQZZJsHdqqsdJQGRgCgVGgSqgpcGG
56+
ljWWbnPhjBlGpCRCnScSGg
57+
hrrztWlbPjltjMPSdJDZSsHttwsZwD
58+
VzzbmzvpvNhvBDqc
59+
QHSJSQGCwJCGrGQjjcgcBFhdgqdqFdDNNw
60+
rCGJtZrHhhtLRsth
61+
TMWwCLPpMTThrvtMRJjbjRvmJs
62+
fDzcHFfSfFQfZzZRJbdmmqqssqtbSW
63+
WWgGZglcllgPBBCBNVGPNr
64+
wrwwhpTpbqhqrshrrfrFfwfzRJGdNJHNmcFzCCzCRJGzGR
65+
vMggvjQvgPvQjVLMMPSZqWNJGCzcNGdcdzHPPzcmCzPz
66+
qDZWvBZVfDhbTtrp
67+
LpDvHdjVghnjbGrn
68+
FBBBPwwlBlwSfFTWPHPWWhmgngmmnPnmbsngngbGrb
69+
FwftBSCSfWCtwfVQDvHHCMVvdQLQ
70+
ZrQpQlSpNlqQCVnQBmdDqmWDqmWWBDBB
71+
HsZMsJvZzLMHTRwWhgDwmfDBgdhWdf
72+
RZvTzJGzRjFrVNVjlQrS
73+
mqjMwfqlSSPmSrlPhwhVpGRcppWcpcGRcGWv
74+
ssJDJJNgZNDWrRWcRpvr
75+
ZTsTnnsLJQgPnfMwmnMrfm
76+
qsVBvZqWLdfbfvLj
77+
mPNRgmHBBGQrCbSbrdfCCSbC
78+
PlQTGcTTcgGFQQGPTGllpqMzwzpVJZwBMssZ
79+
FWGcNRLRLhwJJQfV
80+
nzbzlDBHSpTDbpDpzHwCqhqwJJghQqQMCCBw
81+
JnzndzpmJFmNsrrFsc
82+
gmRwwDwfnRDJgwZLFQFFNGNQrFBmFbbm
83+
CCVHVWWThSrjVGvbNj
84+
WpdqpplppHCWzlClMMTTZJcJsdscJLLdbDDfZDgL
85+
VNtCCMDllpBqDvtdCczTSgjHlzGSHSGZTZ
86+
hPFPsQhhFhLnbsRnLFssdzcHdsSHSSHgjzHG
87+
QPWPQrPPmbdnbWLFPrrBVrVDBqqNMVwttDtBvD
88+
PPNNRggwgRRgHBhDtwhTwbDs
89+
SFGSFSMCJFMrcrCMSSsbtrTbbZhBvtHhrTHD
90+
MFfSMpflQLQflfLjnLmddsLdddqq
91+
RcgbcrrFscVrwZVCgVGGmHppNNndWnGdNqddqqNqND
92+
jTlSTBSTjLTvlvjjPtvMLlhHnftphtDFNFqDnDHWNddn
93+
QBMQvzzjzvJPjFQMmwZJrgmCCJVRVbbc
94+
CzPJsWCpvsNszsJsNsHlDhMrrJGjhrRVhRGgDDjG
95+
tFFdbqFLFdwctQdfVhjRRghTcrjVRTDW
96+
bwQtFLdLBdFmwnHnWHPBNnHCnp
97+
CNTstGNslRRRstlmNmmTZZqfFwtqgwqgfBPSwSWwqgWq
98+
hpDbcHbpSrcgqqzhhWVfqg
99+
DDcLDjbMjCSsZRNlMv
100+
MhHMCMNbzbMHlcqmGmrmWc
101+
tnPggdZPBPgdtttJpdnwVBnmqQcvlQrQlfGqmfWffBcqWD
102+
VPPwPPLPwLGFGLzCbG
103+
rqBcBmjHTGfPbcVgPG
104+
dlDpsdshzlldlDvsWlWvLQbQBbfLFLbPvbBGQBgG
105+
BlBznnRWzlphphBnhZjZtNNCNmrNqjCqHwHN
106+
mQBvmvBmmLJvvrLtttQrfhGlcRGfRhVGWJVChlRG
107+
MzPswTsbTPPsNgMNszgzMpbMfcRcGflVGRfWSpFRlWWWFhcC
108+
bcPsTbgbbTTwNZzTZzvdjdjtQQndZvdrvdmZ
109+
hQzTQJFFZJrcdcdZFFrGFSVWVRWRwRgRHVMWDCDSWc
110+
lPmpNBnnnsNBnLnfbfnCDWMvwRvDCCMPwwHWvM
111+
HpjmffNlnqqhddTddFZjGJ
112+
BwsLFFbHLbVCSCSFbsbFLsJbqnTtZrRMHTZtrTrZTcRRRRTq
113+
lGhNhpPmmhpztZTBrcpjRqpB
114+
QPzdfzBQNgFJSCwsdLbS
115+
ZsZsSBTgffSCqSSfrMnnMwjqmqmnnnqwMm
116+
bbPPbzVclcPzGNlvzVtmnDBnQmtnQLBjJVLn
117+
zPFGplGGvdPbHplcbzzvdlNBTThgRpCTCTfhfsCCsSRZhR
118+
CVLSVCLVZRsHcnzSRpdZZRCdPlmcMWDDlPNqMqtDMmqPMlDt
119+
TBnGjfQrQJjhfWlPPmPQDNlmlP
120+
fjhhGvjvvrTTBhvTBTbvGVRLzVnbSRZpHddspHRzLs
121+
DDtWjfRfftWMLzSQjzzhWjjwRVPHqFbBbZHVwZBFvFwZvZ
122+
JGllgCJlJsrCGPrCNTPdslvZVVNVbvBqNbbpbbFHpBwZ
123+
CcPdnCdmCJjfcftWhtSL
124+
pgpfddDGHWzDNGNGpRCQjCTFHZZQFQjcRT
125+
bJlhqmMvnlrRQFtTthPVhZ
126+
lvbJrlJMBwfzGNTddB
127+
wpbJGGZpsjvtdWvGWF
128+
HqqhBhBqhhNQHTSHqqNzRHVPvTvddWrjtrjFvrvdTdVP
129+
NRLCRzlqHQtNRBLzQllhhZcgbggwmLDZpsgssDpwwD
130+
pDzFzJFcVMcWJFJFzpLBsqWLZssshsGLGbsS
131+
wqHqfvnfrRwQtdQRthhBbBbZLhPLnBTGsh
132+
CfQqlqvtfHNvMVmzmmMCFDMc
133+
GcgpNHvcSNvpSLphdhsLdQTsdWThhQ
134+
wwzttPrrhQswdhnT
135+
tjJjMJRbRbjztmjtjbgcRsNlgglHpDFSlSvg
136+
VVLvLqqPVlvcqLLdwLbHpzcHSsbRJppHbHpF
137+
CfjjCNGmMWhWjhWHWb
138+
ZmGZffggrDqZvZtlbTqL
139+
TTmmhvBvvHWzHpsPpstpLVdwwsLb
140+
qflfFgNctNcCnCCNDnfFFNDwrslwZbPswwZbJLJZbrlPLL
141+
FgQDDcncStCgtqccjSDTHWMThvhTQMBQhWvWRG
142+
SqhVghPccSBhgSBqWBFNQNsHQHMjCCQQWCwQHN
143+
fLZftnlttcbbtZbZlpZtttQjwsCQjRwwRDQspMRMNNQs
144+
TfLtvbJtZmlbTTTtlJbFvVqPSgBdPqPhFSGBcd
145+
pPPNDptcqtpcDztLDhhngnnJgJTmJwNnwm
146+
HVVCsSClHGBCHslWHbSCGGVngTrJwnnJnQRRBrhQhgJhdm
147+
WTWWWsvVlvGbWCFvjDftPpjqZLLtDz
148+
wWclwtDwRvflvffB
149+
sMMsGdsSTMrJZNqczfdvhvnzCnfv
150+
rspppMjMspSTSMpgLjcPFmwPLmPHwb
151+
tCdSMHtHtRFHdWSSJQSgrrrnghTNJN
152+
BGfcvDsfvsqcvqfGvfGnNLhggBNQJNJQmpgQJm
153+
sGfQDPDZzfDZzclwDzwsDlfjtbdHClFRCMWjbMFMRFWbdj
154+
pJNCcvqCccsVvFCpqsmvWJfCBWgSzBBRrrBRDDgDrSbbgQbQ
155+
TMLnLjjffwfwGdjQjDDBjBrDtztRSb
156+
MdPLGhHnMZhlPHHTFfZvVCpmmmcFcVFC
157+
SwFMfCMRCdQDdMbmdFfdbbnlcVncVCcgLqWcNNnCcWlW
158+
hPjQzzhGzhpPrtPJPpPHrVgnqVVncVVnNHlqVnncNB
159+
ptjGrptztpthtrtJJhTsGwFDZZDQmSdfZSwsRZSwfZ
160+
rSSWWCWrdllHWpjcnFNnRCNjQp
161+
bGwwJqGVGbGJVVhgbBgttGmBQjFsMjpMcMnnMBcQFNnsssvv
162+
bfthwmfJfgwwmmwZqVJPHNHSZHWzSlDPrdDdSH
163+
nmJccvclcbwmlbbvVbvsHwJJPCPNCNPnLBhrBPPLBhLhBgBP
164+
MdRGtdDRTqWDMqtMDtQDRWSdLLBsrhLgBCgrgCgNNLPBfNMf
165+
dRZQdDdRRSQWGsjZmwzjmlzsZH
166+
PBGGMrTQTrTBpPQpLpSlwjwfjtlnfwbmGttw
167+
fCsJCWJcvRCtwwjbCl
168+
NsqcsfcvDHFVDJvdLQTrpdTTzTPpHr
169+
rltrwsBTlrfGZggGBLGGNN
170+
jhMnRQJVphMnbhvQjDZNqqZDNTNHZVHGHq
171+
MRvbhQRQQChpvbjvMSvQnMcsFsfwwmlCwFwWcTWwrmPc
172+
DDvLLLBnvrzvbvbmtv
173+
TMwRjTRMGCwGGwrjQQnmrQrrQdhZ
174+
MJPFHFTwgCGqGqgJMGDfSWcsnBSccgVDlnpW
175+
flzVzNrdLNLJzrGlfdlzjrQDgFTpDgDmmmgFmqFDQjQh
176+
CbnBcsZnPZVSnwvVsZbRhhBDpgFphgmgDgTppq
177+
ZWnsWSnncSZsntZCbsswwJMzdLzlMdNMLtMVfrllMt
178+
ZffSgNfgJgGCHZcZrpHrNJTLhqvSLTqQnvVTLvzvLTjV
179+
tWFtHMwlBlDqjjzjnqvvlV
180+
DRMPDtWHPFDBFFwWMFBmFRPgZpJfsffNGJNrGcsprrsmfg
181+
wRZRmpZmlPqZjzGrdrGq
182+
bBhQQFPQbPDVNzVNzdGWNdrf
183+
QFbcDcDbLHgHBPDFRsSSMtmvRttMpCLS
184+
MpWJVVJMcWvpRShcwpLGflmqzSfNdfNLdQzN
185+
CDBTtCgtbjgCRrBrPBTQqzflNqjGdLzzmqffzq
186+
rFgnnBbttDTPtHCDPrPMnpwVJhJvMZvpMvppRZ
187+
sWTTmpsfsWppPTTsTVZWHVVZNvVcdcJvdN
188+
DjjBzjhRHvvvSzdc
189+
rMBjjrjbjrGDlgMlMrGjBgRLPTTwHMsfnFwFQPMPMnmFFm
190+
QRRbDjjmPzNQwFDNmrQmzCbVHrMhBVrJLJJfMGGLtfJBHh
191+
dsWcsqqWSWvnWnWcWGPJLBqhLBqGhBJHHH
192+
ZWnPWgWgPnlbCDDwmmDbRZ
193+
nfPqqfLqQnfHBSqnzztQjVmjfGRWJNGRWsJWJfmJ
194+
TTMlMMlFDMGVGRsVJH
195+
CbDbFDbvgTFFwgTDlDprhlPSqBzSnPdLPtPPHgznQqBQ
196+
fJmWVfHqjfjhZCQZ
197+
NcNzBNvgszQmzjnthZQC
198+
LsLsgBNFmFgTFgGBBgcdMdvPDPDJWrlpVbGpJWqHDlHJHD
199+
SllDdvzgdFDdlPJvbFDDSzFScPTRTNcwfZRwRhcwwNnRZTtf
200+
WBpWBCLGVpLjHrHGGVhZNwcTVcNhVnRcNZ
201+
LHLQLspHWQGpWCHnBvdzDJFlqvdsqgSgqS
202+
GcTctDMjMhpMDRjLsMMsfDWFfdPCFNbnCPnvCPgW
203+
JmvwqlBwnmfdFPFP
204+
SvZqHSZqqHZZZBlllBwSwsRsMHpLjpLsMGtsMspGRT
205+
ClLnCLfClLVllfLLcQjLBCfCmSHVsttsmtsVStDNVdppdsSp
206+
PFrRMbWqMRwFRqRSqwqvMvMsGtgsdmssrgNtdmpNdDGgdt
207+
bwJbPWPwFFPFSczCZzZZCcfjBJ
208+
MwmBmzwJQTcTmfPVfZPwhhwHPH
209+
jlnrglFLvbrGRFGnvFZdNNFfPZddPThVhdPH
210+
RjbjpgbnLGvpLgzBqBpmWmmzqTMS
211+
FnsSpttPnPbNCFDtsPnFHQZTQZgcwgDDTfrfTHMZ
212+
mRjzRzlvBvhjZrQmMMwfZZNN
213+
ldzddlzLRlRWdhjdRLjhRWtJbJbNtJJpJPbCbGCWNG
214+
wBwmNZBTmzzcVcmpzZqdMgPjnLSVlPgDPdbMdg
215+
flJvGtHffHDddddbHjnb
216+
RstrhfrhhRGFQtRhtftvQhvFZpsmpWwNlWqcWTccBNWswqNp
217+
DPWhbzDlQLLlQbLDlLhPhLFNNJqCFGqnNJCCSCnGPnGN
218+
wvwjtvtdwfssvSJgFFvGGSCFcp
219+
mtdrZwwJsrtddrHRtZWbVThLlBzVTzhHQWhB
220+
TsRRWctsTJMQZllggc
221+
zDvhpbprgGvpvVlVQlZpQMJVlQ
222+
rrrvFvGCDhDSrrrvChCgSstBNTSftWBjTdfWBN
223+
JJdssBcLVGrgbBHWrH
224+
QZTptvmvmlZpRDlMMMZCQvnjjFnrjWGFbjnrnFGWgZrz
225+
TMRplDMggtwlppTlvhsJJqdcqwVPSSNcLd
226+
JjTCCrcRvccPLmMP
227+
NfGFPZlNnwBfPlbbbQZGqLHgzLghSmMBzSgvzmDMhv
228+
ZfbnNQpQnZGlGlGpWTddjdTJdpRPTrCj
229+
gWLblMMggdWsdRJlblMRMMqWDvPvcPPPccJPJVTZVZThmcDP
230+
rQFfGfrCHrjnrtNTcPShTSPvvVLtmm
231+
fQrCfLrpLHnCHwslqzqsslswzqRW
232+
zpJtGlJPMPTlTjGJCDGCDljpdnvhhWnZnZnDwwmvnWDWWvdd
233+
sHrVrSrRRRLNgLVBqSsZmWwvwcvwZjmwngmdbn
234+
QsQQBrrLHTjPpTQzzP
235+
JDlzHHzzptRDmbTMrrVQ
236+
dRRNqnCBnmrQsVQQ
237+
wFPCBNFgwjPwhgFNztftpJRPpzRvvHtZ
238+
DlBhrDBPPwMWwhWchW
239+
ntSqbbSJFJNqzVzjCfMvfSlSRWccRL
240+
mVlHtNVtqldbJVmNHmdTTBBgrQQgGsPQdrDgsP
241+
HWHNbBgvNLdcvQMnSf
242+
wqqqVPDPhqwszFwrrszFfMdWthLcMdfhthSQfJSt
243+
qVPVwTzFwFDpDrPDzDPFDPlCHjBGjTmZGjbWWGZBRTNjjH
244+
GVgdWjllSqgjdgHqqlfmhwcpwCzhvZwMcScv
245+
nsJQbLRQsNnzQDQQPPBbRBRhfZwpZcvwpvvmLCcvpcmfMM
246+
DRJtnnRbBBnPztsrPzRBPbsFFHqqVrqggjFWqrgWjTGgFq
247+
hhZJQPJFHGGlcWWslpNN
248+
VwwwJjvwMtrCnwjDNDzlfscWszWW
249+
nVStCrMqbVwqVqSqwnLPhTJFdRgJHZSFRLTP
250+
vPgMbbRhhvMvNjjLWsWQsHQmHwBrmmBzww
251+
tFctDnVFpppHVBTdzdTQwl
252+
FtSFqSptfJCqqJStZCqDpDJMhvLLgLMgQgjgGZgGgMPLZg
253+
zwsWgSGWLSVhPWhtLgLWhPVNQTmDrDQttZpdQtdpQDDQZQ
254+
fjCHcvvjMDrppCQpVV
255+
VMqRnVJMVLPzbRWhGh
256+
mjRmzQlzDzNHWwDZ
257+
FBfJBGqnnpfSVGnpJbJVfNtCsJHWZvrsNJCZrCNsvN
258+
fZPBnfPqSBqdfpFbVnVSjgdcLLgRLjmgRhLLghlR
259+
FSFnTcppdQtnnDhtzDfg
260+
ZLGVmBLBVwZCVjjGqGhVwVVgzzbMDtNNvszMmMffNDDvtM
261+
VZPJjBZVqBZZBjqwVqllpSTphhQFPShWSQcW
262+
hTRdcLrCLgplLvBFGvlL
263+
nZDZqzbDbDzRZtVNDzDWGwslsllBFpnlpGvJssFG
264+
zbqjNWQVmVPrrRjRdRhS
265+
VpNCbVHlHHZfflVfmchctqFcqQQjZmZM
266+
WDSRGgsSvgJSRrnWgqQhmjBqmhqrtLqmQm
267+
znSGTgDJnsDGzgwCwlpbCNwHzVtl
268+
sTTTrpHFFFqTnQbbvfJdDzHHDLVV
269+
CjMtgMgRvbPfjjvB
270+
mhMvlhhWClvqshNTQQqsNN
271+
tWFtFBzbwdFrpmdhdm
272+
qTqDjJjJQQqMjTDLJjNqNqPNdmpcSmhdmhhmcrWZpdPGddcc
273+
RjNQLJNTTJDDJRHHjQqnMWtlvvVvbtBvRVzgzgwgVg
274+
CGdQjwdJrbBmpmZZZlRWcb
275+
NgtMPVstgSzBLzhgzgLgDRlcmDWRmlZvcSmDSvvp
276+
LhNsgPPLFPPsNzMhhVzPsGJBFqwQGfnqfQjdGdGfwr
277+
CNbNdbzjCZpPNzjmzjsCMRJvnnMRGnsvJGRs
278+
wrtdwTLWFcFWdFgwRRsnJGnGfTGJfMsq
279+
FttcwgBtgVLgPldQSNZBzBpz
280+
DjRZrrRmttRFDvDrFTZsnWnHVSTSSJVZJH
281+
dNNhLqlLLqdCzfMMlCfSncTVVWcHdcVsVdSVnT
282+
QqppMfzMfqWCwbRQrwFrrttQ
283+
dwGjHrtjsdhfCHnPSpfMfDPpPDWS
284+
lmNzzlLbFqcqNgzpWMSvbbvDQDGWDp
285+
LBmglgmqBqmrwCGhCjVtBC
286+
tvHgWZCCprlgpWglCtjPhLmPmhVdJFSzVzdJVmmQ
287+
fBnTTnNNBnwfnNqcBbBBTbGJQQJhSSdQJJsmdJFSQGSmVV
288+
cMcDwFbRfFRlHCRCZrrp
289+
ZFWmgghzBgwgjWBzjzmRWWMmsVwnVrsdVdwNrrpnnVrPCnCP
290+
GLLbtGqllctqvGJvSlQbJGsPnVdsdpsTPLsVppBCTVss
291+
tJBStGSvctvDDfczmRgRZjzDjZmgzH
292+
FMrLmsQQSWzCZBhpQJTQQZ
293+
dPPVncVvPBJDCPhwJD
294+
fvHbbVHvqnvvvBzgLbbGGmrbMr
295+
mrZzrzqDrhZqDddSFrCGLLLPQPQBJPJJBnQq
296+
TgbpGblWlMsjgWlgMfpNRgbRHHBnHHHtLpCJPCPBnBLJtQQL
297+
sbTlblTlvRbbGblbFcdDzccVcDVvzzzd
298+
zMzfzlGwSBMMSCMzhsPgfcPcfcbhjQPt
299+
FHHqJVdJmFmdVrJdJppthscjGtqRPRcccgcQbR
300+
rvNJJpLrvvLnJvNFFvZZZBWznBWGSDCMnCwz

day_03_part_2/src/main.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
use std::fs;
2+
use std::io;
3+
use std::io::BufRead;
4+
5+
6+
fn main() -> io::Result<()> {
7+
let file = fs::File::open("input.txt")?;
8+
let reader = io::BufReader::new(file);
9+
let mut score: i32 = 0;
10+
11+
// Read the file three lines at a time
12+
let mut lines = reader.lines();
13+
let mut found_char = 'X';
14+
15+
while let Some(Ok(line1)) = lines.next() {
16+
if let Some(Ok(line2)) = lines.next() {
17+
if let Some(Ok(line3)) = lines.next() {
18+
// What character is present in all three lines?
19+
let mut found = false;
20+
for c1 in line1.chars() {
21+
for c2 in line2.chars() {
22+
for c3 in line3.chars() {
23+
if c1 == c2 && c2 == c3 {
24+
found = true;
25+
found_char = c1;
26+
}
27+
}
28+
if found {
29+
break;
30+
}
31+
}
32+
if found {
33+
break;
34+
}
35+
}
36+
if found {
37+
let priority = match found_char {
38+
'a'..='z' => found_char as u8 - 'a' as u8 + 1,
39+
'A'..='Z' => found_char as u8 - 'A' as u8 + 27,
40+
_ => 0,
41+
} as i32;
42+
score += priority;
43+
} else {
44+
// Quit with error
45+
panic!("No character found that was in all 3 lines");
46+
}
47+
}
48+
}
49+
}
50+
println!("{}", score);
51+
Ok(())
52+
}

0 commit comments

Comments
 (0)