day03 finished
This commit is contained in:
parent
8f66f44335
commit
c95e1d02ec
5 changed files with 378 additions and 0 deletions
0
advent/days/day03/__init__.py
Normal file
0
advent/days/day03/__init__.py
Normal file
300
advent/days/day03/data/input.txt
Normal file
300
advent/days/day03/data/input.txt
Normal file
|
|
@ -0,0 +1,300 @@
|
||||||
|
fBDGBcBrGDvjPtPtPV
|
||||||
|
QhzJLlLJZgLZzNTgZClQHvRvHFvrjrvnNjHnFjPF
|
||||||
|
ChldsCZhsQzsCGrrSfMfGpfrdM
|
||||||
|
MJbgcgJlvMSbfjMSbllmCrntwmFrrFwgtCtFFG
|
||||||
|
vPhddVZZhmnmdnHmHn
|
||||||
|
vNBZppZQhjSzfScjDN
|
||||||
|
jwhqbZRvbzvbqqpqzqHHCCCzsLmmQVtmJVJtLWLPrVLLVrmp
|
||||||
|
dGMfMGMdBBMSTfdMGTNlcZGGPSmQJVVWsJQPLmPLVPtmWPLW
|
||||||
|
llMBBcfBnBcZMGgqvCDbjbwgCHjvzH
|
||||||
|
RSDprRrwgVVRwrGqrJsNFJslgglmmNszzN
|
||||||
|
LLnWjcHWnCTmpClhHp
|
||||||
|
MpfMZWjtLMjpjtBPnLPndMBGRqwbwBwvrGwGrGVbVvwD
|
||||||
|
PQNGshQWtwWNcjssJHHJdlBLBlLrRDFFCrdwSlLB
|
||||||
|
mbzqZqsgMzfnbmbfgpZvZBLrLlSCrprDlLCrdFBlDL
|
||||||
|
MfvZzqMmsVnVzzTTbMzfvnctjhcHPQJJjNTGWjQJJHWP
|
||||||
|
MdLWQdMZrPQWsPdMQPLSqGpHGbGqpqqqVzpm
|
||||||
|
BhgFhVgnlgBNFtNwzpbTGbTTHpwwbF
|
||||||
|
tCfvvCfgvBjnfflftCvjWZVddMQZsMMsRdMZMP
|
||||||
|
lTLdHVlqmqWdvjvJttvFlJtC
|
||||||
|
ngbMTgGhQpgrGtvCzcCJccCrcj
|
||||||
|
npgwnDpSDbgbbnGGDQnMDSMgZZWVqNTNPRRdwLLNLqmPZTLP
|
||||||
|
RRSFZvRdrdbSvSVLRZrSGZZrHcHPfPPwJJVJmPHmJfHVThPm
|
||||||
|
WnLjBQBCQWqCQwpPmHTcfQpm
|
||||||
|
gBDttlnqLqlvzzlGRRlr
|
||||||
|
wGpdGdddMPDWgFJGBzmMlntTbZMtZbnT
|
||||||
|
qNSqQrrqSjQVrsvTtzNnnZTnfNztZw
|
||||||
|
rcVrjjsswVvRRHsFJLCDCpCddGCCcG
|
||||||
|
jLMhCPWLCSWSrRLPWmPPLSCLtcTvHHDhZcfHHltlfZtlfgfH
|
||||||
|
rBBNrbVdtZlvVcZc
|
||||||
|
FppGdpFsnsqGJnsFzGdJszbdwSLRSRPrSRjqrMqCwQMWQqRS
|
||||||
|
jTjZwnpjMDfZnmZfsRhGGztqCzwsdGws
|
||||||
|
JHrWcNrNNrJHLHlzsCtzGRRRHv
|
||||||
|
rNLrVBJFLmfCnbTpVQ
|
||||||
|
LGWJvDFssFmMBhThMvnB
|
||||||
|
CprbCNZpwfpwfrbZJMQMTQcVVgBZcVQBZc
|
||||||
|
ptNwfwzHzqzlttbrlpCCqzwtFLGSWFsPDLWFHSDjJWSDLFDs
|
||||||
|
MZJjSsCsMsZSSdZJhdjZtCbPHljqlLPlPRRDLqHHqLbB
|
||||||
|
mmwmVpGrnngmggGwnccPbDBPLLLllLBcFRFb
|
||||||
|
GQzVTQTTVzVrQrmvpTnmrQmMvZRhZZCZSZfCsfttSJddNC
|
||||||
|
gHZZQRdVgRQWWRPHWPnttDTmqQqDQnStzNqD
|
||||||
|
bscfjslJJspBLsslNStSmTmLmmDTzNnS
|
||||||
|
JJCrbbhBsplrrChpBbfjlpbbFWWVggPPhZVRRFPdVMddPnMg
|
||||||
|
FtLfHNhFJCClJlst
|
||||||
|
jnDQqnDSDSRqwBwnjdFlZbsrTZdsJsGCbw
|
||||||
|
zDFSmjSDVqnRMHmphPhfWPgW
|
||||||
|
rSpRtSPWpStVqrwSSdrrhZvnBBnDBvsqjlBqvvnnzl
|
||||||
|
LFNLLFfFFhMFbcbmbHbHgTNcvZvBZMsvBnJBzsZvjJvZlvnZ
|
||||||
|
gmFLhTTbFmmQrrSWWpwWVtwQ
|
||||||
|
DzmDJGSccGJPcdcJPJqwplhjBHmHVwwtBthV
|
||||||
|
grMMvRsNRnWCFrgZRrZFhpVVlHVnhpVjVtljhhhf
|
||||||
|
FFZFZTsvCMSQTdGcTHzT
|
||||||
|
TLsGTnZncjVmVLgm
|
||||||
|
DvRwMcHMvMbwBVlCBlzlMjCC
|
||||||
|
FdRtRHDwQvPnTfPqcFPP
|
||||||
|
rZNdpBSldLLCJZbbCT
|
||||||
|
WQcQwqsmQmmqJgTRLRCqLq
|
||||||
|
znQcwsmPcmnCzQmfGGnzHSDFlNptNthPSdllhFPplS
|
||||||
|
vWCWvVhhjPNjNNvWVNbnbHnrbGrmlPqnqqbw
|
||||||
|
JdZSLMgsdgQMcQssQnnDqmDqlDqnDlwrHc
|
||||||
|
tdgQSSdpQtSMSNWpWRfRCwjpjV
|
||||||
|
qhdJFpChSJhDFDrqbpJbddSHPPRnGGBfBrHfZRnjRnlBZH
|
||||||
|
zsMVzmwmtLMtmQTzvwlRcZnZZljvvfGcBjcZ
|
||||||
|
ttQzMtVgMWVMQsmtJgqJgCJbqhgbBSBN
|
||||||
|
BWvdCmZBrNRrGSSfTzQJJRTz
|
||||||
|
gMblllMgLVswbgwMsLjgLLnlVtfHfttSQttTJTSQGfGPTPTB
|
||||||
|
LMgnMgscgqbFBqvBNFBmNm
|
||||||
|
VlcczDZjjVbznwLnwpTH
|
||||||
|
NfJPJNfJdJMSHSHnjBRSnbbL
|
||||||
|
NddqPttjsdZDqhcqlFcD
|
||||||
|
NVrNBBFFFrvJJrVTFTNvWBCbCCgWGqDqhqghCLqbqtCC
|
||||||
|
mfZVPZPcqtLbcqgc
|
||||||
|
fwZlwzfRfQQPMZBBwwBjFSjTVrBT
|
||||||
|
GWWNMfWWwGWMtjJnVnJzlzVsvLnsVn
|
||||||
|
ZpRqHTBddsvtPLqVPP
|
||||||
|
bpSDgStgTbdFTpDdRmfwfmfGFcMQGWMcjQ
|
||||||
|
gCgGBgfCbRLbBLGnGBBfRGwprctZFMvtFtvSNNTZZtMvLc
|
||||||
|
DhJhDzzQlDdshVJlDdhqzqzQZFpppFMNtMZMtFFVvtpSMpFV
|
||||||
|
qQdsDHWWslnNgHmBbHBf
|
||||||
|
MRvnJFZVnvzJrWWSqMSPTSNqNj
|
||||||
|
GlcbDpCHCCczdsDppcccBGccqjwTTwQPPSjNjWSWSwwsPsws
|
||||||
|
GbdlBbgdVtngtzVg
|
||||||
|
GqTSRpgJgDNSNJqJlSTJlJCBmmcnjCjLFcMFmnGsmBsM
|
||||||
|
HPhfPrWdfrQPPPhQWHbLFFWFCmFjMBFFsLBFwj
|
||||||
|
fdzVbvfshrbzvfbfdVPvQtqqJgqgDpNTgqZZtglZtZDD
|
||||||
|
wsPhrDMfrwdvHdTFrrtH
|
||||||
|
lnQbNBbqVBqHGJSddvTlJJJJ
|
||||||
|
cjnHznzbQmgzqQjBWwZwRjDRfWWhWsWD
|
||||||
|
SsScnttbbSzRRMMMLpsBLP
|
||||||
|
dDJGgjGJVMSBBBMj
|
||||||
|
JGDNCfgfSChDJrgqdgqJqGbNbbcbNtzWFctbzzlWtFFn
|
||||||
|
dtsBsCMtwSVBlLZZZnMgcMZZ
|
||||||
|
brppQHGznLZgJzJJ
|
||||||
|
fprvRpNHpNnvbGDBCBPwBWFWBFBvtB
|
||||||
|
qjgjSgHNlSGHnjfSVDvDPRDDtcdDcGtD
|
||||||
|
FMTnnLQZtRZDbcZv
|
||||||
|
zhBLzrCwnCsTCMCQTFLwwCzpHgNlNmHqhlqSpWllmlllhh
|
||||||
|
bJqqFdfbGdfPNsJsdSRCFLRHLDDBHDnShL
|
||||||
|
lQWlWQpwQjlpwrjrwTSCTLMCCNTHRDDDDRRB
|
||||||
|
wtWgQmQQWtwWwrljNPfGPzJmbbfzmzZf
|
||||||
|
MjppbDGmNNblCpzsNZzhNPgHtzzs
|
||||||
|
qvdrqrQVVWLfqWfRRPRwZPPwggpf
|
||||||
|
cqdcdpqSrrSvrvWvvvrSbcGTTTbGlFFCCcnnGbTb
|
||||||
|
HLNfNGttHVFBHWSr
|
||||||
|
RZCLsbCbLbLhwzDgbZCbRZhhnpSnnWpWplFFnDnqlBFVpSVB
|
||||||
|
MzbhhzwcLGGfGMvMTv
|
||||||
|
PdBlpdVJlmftGbTzwbtRTGGL
|
||||||
|
NQNMgWNNQNScDhsSHSWhsNgbRCLwGnnwqLwLHbbCGGTjTR
|
||||||
|
MvhRMMRvQshgSNDWFrfBfJFZrFPJJJPBBp
|
||||||
|
qdtnQqWtnjfGGzsnGQmWWfqQNbRTgggRFNbCFNSSFlSJsrTr
|
||||||
|
PZBBbPMvVcMpSRSlSCpCSgCT
|
||||||
|
MvHZhwMVLDHDcZMvLQfwGWqwWjqjGbmnQq
|
||||||
|
NFPmjNhGthGNpddddFpzBbqPczSqPDzzDgbgLZ
|
||||||
|
VJWvwQrlLHWrvlQZDgZSSDSDBqbb
|
||||||
|
WfHwMWfvRvMWrWJsrfMRWGFmGGLttMNpjCpTdmFFht
|
||||||
|
DppfNpLwhTBRDbblgWNgCdgCvs
|
||||||
|
nLcLqFJrHJmLcFmqMFCdzdHdsgvdzvbvWPWs
|
||||||
|
nVFqrrQcSVmFjrmJnrFrSjTtRGRLBwfRTfZwhBQhRGGw
|
||||||
|
sHrZdHGpHhsrLpsssGLzhrdtWdJTMWJvffVdmnbfJVnW
|
||||||
|
cggRDCCjlPQCgDRnfbTtfMJfWVTm
|
||||||
|
cCDwQNlwQPjgCFDljwpSLFzGFzZhzsstSpGz
|
||||||
|
dGTGpGdPZZCpnnLRpgzgzn
|
||||||
|
lflshFjFcrNdBjMjMnmL
|
||||||
|
hDfrldDfbVPbQCtHHZ
|
||||||
|
cSRZmtFZScfjZtLbmCNMqhMVQCjwqqCwVB
|
||||||
|
pddczHpHHzgWdGdsvPrPzcvrJMNwJCQwJhNwBhCJBVMpCVJB
|
||||||
|
cgrWcHdnPHHznlmftmtLnRDD
|
||||||
|
PZFMMVJVZmVJVHMNJNVfNdNNSnSWsSRhgRRQnWSsRnSWmszc
|
||||||
|
llljlTwlprClTbTpwLlgQqhcnwnczhcgSqsQRR
|
||||||
|
TpCtGtrTBDZVZHNQZQdB
|
||||||
|
SggjglBBlzbDgdpFJddZpF
|
||||||
|
CCNLsfNfrcMLsTLPfPmndmTwmZtZJZJdJplp
|
||||||
|
sfWCqcvMrlMfMLsLNfhVGvjjjSzSzVQhQvVH
|
||||||
|
NTBhNhfBvfflsbSmcl
|
||||||
|
nrMZRnHHwBMZRsSsgSsGrbmdms
|
||||||
|
nPPFVwVWJqJBVJLT
|
||||||
|
vvWqWJWJvzfFZZJvWQzqZvdPPHjSfHjssHsbsfbjSHRR
|
||||||
|
DCwtDVjMCrltCnCrDCDmbTssPHLTLldssdSldSRp
|
||||||
|
nMcGtDmBmMGrGvvvvFhjFZgWcN
|
||||||
|
tGWWWfWpMDjMZbTbnqTC
|
||||||
|
JFscJzFPDJDJZnrJ
|
||||||
|
sBFPcBsSPBvmSPwFzSSQfpwWfDpgNNfWtfgpftfg
|
||||||
|
BvTsJJzQJLMlbhmbFlNmTl
|
||||||
|
PjGnpdpGcgDmhvnvmvlbmq
|
||||||
|
dRtDGGgcDtjRcwdgQLVLRMJsszJVLRQv
|
||||||
|
FGbPPfFSchBGSvGGWsjSTLVQLLVTsQlj
|
||||||
|
dDzPnCrRCrrWHHTTHsdVjs
|
||||||
|
wrwCgzMrNprCwRJJwnnbFmmpGZtcvcbFfPFmFG
|
||||||
|
fbrJjmmmZgmZLJZsBBWlCBGnCWdnfF
|
||||||
|
RVMDDNDHPNvvRvDtHMcctMqFslqWPnClddlClFlnBqCG
|
||||||
|
MDDvHzHVQMMDtTHJLrnggSZLTJZgTL
|
||||||
|
dgBBCBBdvbmrRczFMHMSrqjjSPzn
|
||||||
|
tZTwQlLVwnQLQQFJVPzjDSSzJFPD
|
||||||
|
fhWhQpTTZQlWfQWpWQWQLhBgchhRCsdbvNnbgRsmRR
|
||||||
|
LttflLnGrnMsmmHgWTbdMW
|
||||||
|
vBSWzZRDccWBFBmJsmPJmgbsgB
|
||||||
|
FppcFWRNRZLLppGrGrqr
|
||||||
|
JJClRmLlFGvMTlFLLfPFQQcDpQcjFcjqBc
|
||||||
|
zgHSZhggggtwSZhrDgsZgbjVQcVcjPNqcpQQqBjNQzNp
|
||||||
|
hZnsShSWGDMMMRnv
|
||||||
|
RbDbslClhsfNCbsMjbNrjNMfpTTTTJSzHTpLVzLLVWVzJz
|
||||||
|
ggFGgmqFZBnnSzTWPpHBLzdT
|
||||||
|
vmWZWGwcZZqthjDrbclNCjlD
|
||||||
|
dCHwnVBBCBnVHddqnQRdbbbrgTsfWwjcWlsfwDDg
|
||||||
|
hhlFpMtGJlZmDjfWfscjWDGD
|
||||||
|
hFNFvZmppmSlNJMmNFztmzFhdVPPHQQqqHPvLBQnBQQPQPnC
|
||||||
|
WfzsplQpvQgfwzlbllPGtPJTTwtGGZBTTGJB
|
||||||
|
VrmMjmFDjNjjDFBhHTcZtBRRGcGV
|
||||||
|
mqrFmmLrjmjZnmqLrmQsfvbsfsSSlpWqgglp
|
||||||
|
lsQVfDpfflpGGmQRRgdQbdfbWdqnjnHnqZHJTqqrWjqqcWnZ
|
||||||
|
PPFhFFtwzqjHgjWTWF
|
||||||
|
SwMwMhNMlMsgfQfl
|
||||||
|
cSttSDQQCgVvQQSvsstthQcslLLgLgLnpglffjfFlLFblnlH
|
||||||
|
rTTwTbdBpTHJfZZJ
|
||||||
|
BddPBzwMBzqRqddRGbVShvVhVQvQscvGtV
|
||||||
|
sSpsHqHMspqMqWsspwsSWsbBPvjrFbddrGTvZLFjdZTZGLLG
|
||||||
|
NccDncRVNDVJLvLPPJTJGvJL
|
||||||
|
mRCDNNhgDnghNRQNggNRcNlMtpMPMMtHtShlSSMtlhHW
|
||||||
|
QrjSFQWzDdCHtpFlbBbVns
|
||||||
|
PhJwNLfNqgfdLlZHpZJJpptBBb
|
||||||
|
qmwhfhhfMNWSmSdQCddv
|
||||||
|
VfRMdbshRmJBqbmDBH
|
||||||
|
CWwWCWTCrzFpzWwCWFzgppqHDtZBfqDmQtBftBDFqBtq
|
||||||
|
WlzrWWGWPrpGCGdfSsRGVnGVdNnR
|
||||||
|
lhLTfppGRhhbZntsbTqMbq
|
||||||
|
jrHWBHrMgjHPWMgWBJWBWjstPvwFFbbbvtvFqbPtvqws
|
||||||
|
rBJJJVWjBjLphcMhSVRV
|
||||||
|
fjrBPBjWVPWPrwtjPpRQZZVdZQddFdHFTZdT
|
||||||
|
GqlllsGLgMCqGqgTFbmHdTmRzgTm
|
||||||
|
qHchGscqGClHGhNwhjJJNWpwPB
|
||||||
|
JzrrJZqLFrnMzVjNNnNnNDwdGHGlHlHbpTZDlmpTHb
|
||||||
|
gQfQcRWPWgQSStCtfcsPsPmhsGdDhdGDHTwHpDlHwhTG
|
||||||
|
fvWQgCtfWgtttcPQcPBtjVdBMJMLJBFJMJVzNrJr
|
||||||
|
cMzNjGGNQFVzNNQVjNdqRLbFDqRpgLRDpDHD
|
||||||
|
TwtwWJJBJSvmJCWSvTTmTbBpfpRZSfDqqSqDgHLgqdDDqD
|
||||||
|
vtvmPrtWQMrbhMrG
|
||||||
|
NqCPqJNJQQQQGCtGPmMTrTpHlNdmpTrwdN
|
||||||
|
bzhZRDbnZHrmmcwRfM
|
||||||
|
vWhsnVWWswhSFvDSDsnhbDsLPqqPFjQjgFgtjqqCLJPgQQ
|
||||||
|
nqpfqfcnclcNcjjQ
|
||||||
|
BLQJQmLPPvdtTFNjlFNwPs
|
||||||
|
DgDgLLCQBBmpVSMrgfqnpp
|
||||||
|
njCnCwwcVCBWjrrhWrHdzJqmhl
|
||||||
|
QNGptTTQGLTdhqmdJBHT
|
||||||
|
GtLvDDvLMvppGGVZMssfCBMfcfMf
|
||||||
|
npPQGpDnsbJhvldphHFfpl
|
||||||
|
mgqZcqzczzzcqmRzrbrzBvfBLvlhhftFWlhlFtLBvv
|
||||||
|
cgjmTgbbMgmzqRRwGDDVQVGVSPwTJV
|
||||||
|
VhPNvgVhbjPsNvsChTZlHtlwZccZMhwlcm
|
||||||
|
fpznDWDzDfRqffpnrmcRmwlTMZrHTBHB
|
||||||
|
fWdQLFSnDzpndqzzqgsVvPsJLMsPCgvjPP
|
||||||
|
RFRDQVvqVMZGBVzqgqPNJNmNhqqPjnPS
|
||||||
|
rcLLCWrtwlWrWlTbTtlLWrWtjPPgdwgjmNmShpJnjSpSjgSg
|
||||||
|
LbLTnbbTHsWlfbtZRZGQHHZZDQMVFz
|
||||||
|
dwcLLSLVdwLdvdfZNJgQZWfffVJQ
|
||||||
|
CTMlCRCCCTCtBmCFMQJNNNbNfWvQjvZggT
|
||||||
|
mRnnnpFlvhnlMmBmFMCMCcdHrwzqszprdcwzLDwrSz
|
||||||
|
JSHLHRMlzJHcGMpwCffZctZmgfqqZm
|
||||||
|
vnTWvQrnrQjNnBWvnvDnVgqtVWwVgfFmqWfqZFWZ
|
||||||
|
rdQDBdBrQQhmBNjDTmrTnzPzPPLHSSHzHHRHRLdGLl
|
||||||
|
GvMRRwGwRFmZRnmbMhZMGcpgZBpdgBJcTsjsBstdds
|
||||||
|
SNlPzzlPDDQSDDDqfllqDLBpTgWBgWdTpcWjJQsWjjTp
|
||||||
|
rScrCqPCSLDNrqlFmRVRRrbhmRmFRw
|
||||||
|
dbtgMNlNSMQPSLNdvVQgSfcHHfJfHJtfmmHTqZffJH
|
||||||
|
wssswnzwChsrGCCwGCjzCsHFHbzZffbFBcffbHHTBJTZ
|
||||||
|
rsDRGDwjhWbrbRhGCGLdLNlNQVVDPSlMVMvv
|
||||||
|
BgPccPPRlZZmTMTZzZTC
|
||||||
|
jjNjntVtQnWHrJjFPnnqDqJTJTzqJmDDCqChzS
|
||||||
|
FnQHQjHVNnWVvQpgLPGRdcLpbfLLBl
|
||||||
|
JLMhFJfHHLJChRvfjLJJnFRpPrpPSrNnrTrTTPntTptrpw
|
||||||
|
QgcBCqcGBBGzGrNQNSwSrPPTsr
|
||||||
|
zzWdmzcWcdHCJCRRCF
|
||||||
|
GSRcjdjGcBnFWbnVLFQR
|
||||||
|
pCNqTqhDsMsMmNtNCZmMMtdCbVFzbFwnFFnWWFnzVLTQWQLF
|
||||||
|
qNJpMdCsDNsNNvGPlSPPJjfBBB
|
||||||
|
lsHjgmFsnFTwHgSPDRSrDqnqrrnr
|
||||||
|
NmZWcZmzNMZWJbbWvJMJJMzBBBrRrdRfDfppBNqSrrrPBP
|
||||||
|
JZQZzQtWJhmltVwVCjwGjs
|
||||||
|
DslBHDpdDlslgffFWnGqHfzH
|
||||||
|
JNMMCCCCSMvzzGfMzP
|
||||||
|
hNtCJTwRwZQbwrplpDjlpz
|
||||||
|
vwvJwLBzwhhwvzwrgwshLwVWWgFfmlSFVRDfWFSVFVfF
|
||||||
|
mNqbdPnNdpdjnMqSFFMDfSFVMDFRSV
|
||||||
|
ddpTPTqmbNjjNqndZzvLzJZzHCrrCCzsJH
|
||||||
|
SLjjlGMVpLpNSTDspsrHpFFwRrZgRfwpfgFZ
|
||||||
|
nQtWPzbPNQtbdzPtbBCQJNPcwFvZJZFFJrwRwrHcfcfrgF
|
||||||
|
NQCnqPBWddbPnbCdWdWQnmdVhsMMDsslmSSmMLlVTTDVMm
|
||||||
|
FZmcqBChfFmfsDjjnNMNjSDgNs
|
||||||
|
RZwzdvdZRvTRRlvWSgDjStnpntDwNMtD
|
||||||
|
vHTGRvvvZHlQPRQTbPTVfLJPqcLJBhfmFVJPCF
|
||||||
|
dStFcccjFjqGFrFHmSHFBjBvzhpprWZpppbppDvzhsvDhT
|
||||||
|
VMVLNfCCCRTTDtDDDTRz
|
||||||
|
QLJwMMLnLNVLdtGGgmdScBnB
|
||||||
|
nTCWnTnrllglrNgNTZFgSZbddHtdHLLwtMLQtfbM
|
||||||
|
BJGqppPCJVmqqhBJCdwwpLSLHddfHSLHtw
|
||||||
|
qmzBhczVGsqVBqnFcCjRWNrNlrgD
|
||||||
|
phrHLNtnMpslNFfwVGwFZSBfFTTz
|
||||||
|
cmJJDmmbCnCCfBSJGVBwfBfz
|
||||||
|
DdqdDbcqCPcCQRWmQPqNHhnRMntNNMNhlsLsML
|
||||||
|
gHHWJWMWsHWgWSnPwVnVNGGDbnwwTl
|
||||||
|
QjThjhFqqhmQTCVPfDVqPbDVVl
|
||||||
|
mpFLLrZjjBcmLFmmFtLBJMddMgSdHTscvcJzRHRs
|
||||||
|
gRdwcCddwghzddzzzsGfZsGnqlqVVhjGDj
|
||||||
|
DMBNpMDHrNrNLFMmpQJHZGnPjFPFlZjlfGVljGVf
|
||||||
|
SpbQNmHMzgcRwSSD
|
||||||
|
drqcMpNbpFpmjzfz
|
||||||
|
HLGZGsnGLwllzHGGgGnGsBFfmJtmtjfJDSBSJJJB
|
||||||
|
ZZwQwHTgZnwLGTTnQTHVlgbWCQNhzNcMqbrzcNNQdNcr
|
||||||
|
TDScznfzNlpbbrtsvjdcbh
|
||||||
|
BBHqFGWGFmVWqVBBWMtvCLvsLdvrvjLjdLbsvm
|
||||||
|
tPZHGFJPJqVwMWHJVRRSZNfQnzfpnTpNfl
|
||||||
|
FWNZgWCngsNwJwlQlrRTRhSjSS
|
||||||
|
GGLcVVcVmppMmpTjTRHlbRbSrVBh
|
||||||
|
rvmdzPcdzmzMrCNNPJFntFsCtD
|
||||||
|
MtfLBzSLmMtfBMQzMmzmSlfdTDvGCZGCndZnZgWDwGCZ
|
||||||
|
HhqrrpppcqhdbjPvbgGvTCnWDbTWZT
|
||||||
|
cNjsdqPqchJBlmzlVQLtBJ
|
||||||
|
DwwVFZlDBsZFDvLPdpjLjSVHjpLc
|
||||||
|
nMnztWhhfPSffcddGpgp
|
||||||
|
tQnrQzhzNtzbNrBwPJwTslTvNFFP
|
||||||
|
LWMvHJJrJwtzvgwMwVdGfcpNfdDVDWfdBB
|
||||||
|
jZPFmjnbmhPfTVfVHdhTTV
|
||||||
|
qqQCmCmbqCQqjQsQvrQSHSJrzz
|
||||||
|
wNzmDRwmgcGphZcPvLLZHjjFLF
|
||||||
|
JlbsClVVqDqFZjJD
|
||||||
|
WSlnCbttftsCsWftbCCrTffbpdzMwgMgSpRmdwdRzggmDGGg
|
||||||
|
gCCRBClgfCgFFTltTGgBqTsQhzLzQQNPnvrNzHrrfPzHLr
|
||||||
|
DMjqWSVwDwDwZDHZNvLQnrnrPrNv
|
||||||
|
bcmWJqdVcbtgBglbGTCl
|
||||||
|
SFDcrFHtlqhqqLdzTTwdJLPNDL
|
||||||
|
vBWsWvsmgvvvdPwNnn
|
||||||
|
smfRbpsWMBmsmMsBBBNbtSFttjCHSScbhHtHhHjb
|
||||||
|
SQpgGgMNvggQGMvQcgnHWmldnHWTWndnSHHF
|
||||||
|
DwbDPzthtttljTzTFBlmzl
|
||||||
|
DstCswftDbZbCChPPRrfwsfPQlLccJQLvVGNGNVpMNvZcvgG
|
||||||
|
HdqfjjLfHqFSHddVWNBjsWhWRRJtBNBs
|
||||||
|
gPMQHpmrcmnbRQNRRJsWttWW
|
||||||
|
pmbcZwbrPPrnTPMFFdDwqHwvHDvzDq
|
||||||
|
FFsVtFGVGvWVhlfVhzlsFvHbPwPmwHLTSbLjcLtbSbLm
|
||||||
|
rZrpJwCqnnJHmqcbcTLTbS
|
||||||
|
RCZZQMQpzvRhswVg
|
||||||
6
advent/days/day03/data/test01.txt
Normal file
6
advent/days/day03/data/test01.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||||
|
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||||
|
PmmdzqPrVvPwwTWBwg
|
||||||
|
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||||
|
ttgJtRGJQctTZtZT
|
||||||
|
CrZsJsPPZsGzwwsLwLmpwMDw
|
||||||
55
advent/days/day03/solution.py
Normal file
55
advent/days/day03/solution.py
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from typing import Iterator
|
||||||
|
|
||||||
|
day_num = 3
|
||||||
|
|
||||||
|
|
||||||
|
def part1(lines: Iterator[str]) -> int:
|
||||||
|
return sum(Rucksack.find_double(line) for line in lines)
|
||||||
|
|
||||||
|
|
||||||
|
def part2(lines: Iterator[str]) -> int:
|
||||||
|
groups = [lines] * 3
|
||||||
|
zipped = zip(*groups, strict=True)
|
||||||
|
return sum(Rucksack.find_common(group) for group in zipped)
|
||||||
|
|
||||||
|
|
||||||
|
class Rucksack:
|
||||||
|
@staticmethod
|
||||||
|
def priority(char: str) -> int:
|
||||||
|
"""
|
||||||
|
Returns the priority given to each item.
|
||||||
|
It is assumed, that we are given a valid item
|
||||||
|
"""
|
||||||
|
num = ord(char)
|
||||||
|
if ord('a') <= num and num <= ord('z'):
|
||||||
|
return num - ord('a') + 1
|
||||||
|
if ord('A') <= num and num <= ord('Z'):
|
||||||
|
return num - ord('A') + 27
|
||||||
|
raise Exception(f"Unknown char: {char}")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def find_double(rucksack: str) -> int:
|
||||||
|
"""
|
||||||
|
Finds the priority of the one item in both compartments.
|
||||||
|
It is assumed that there is only one such item
|
||||||
|
"""
|
||||||
|
half = len(rucksack) // 2
|
||||||
|
first = rucksack[:half]
|
||||||
|
second = rucksack[half:]
|
||||||
|
for item in first:
|
||||||
|
if item in second:
|
||||||
|
return Rucksack.priority(item)
|
||||||
|
raise Exception("No double item")
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def find_common(group: tuple[str, ...]) -> int:
|
||||||
|
"""
|
||||||
|
Finds the one item in all three rucksacks given.
|
||||||
|
It is assumed that there is only one such item and group has exactly three rucksacks
|
||||||
|
"""
|
||||||
|
for item in group[0]:
|
||||||
|
if item in group[1] and item in group[2]:
|
||||||
|
return Rucksack.priority(item)
|
||||||
|
raise Exception("No common item found")
|
||||||
17
advent/days/day03/test_solution.py
Normal file
17
advent/days/day03/test_solution.py
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
from advent.common import utils
|
||||||
|
|
||||||
|
from .solution import day_num, part1, part2
|
||||||
|
|
||||||
|
|
||||||
|
def test_part1():
|
||||||
|
data = utils.read_data(day_num, 'test01.txt')
|
||||||
|
expected = 157
|
||||||
|
result = part1(data)
|
||||||
|
assert result == expected
|
||||||
|
|
||||||
|
|
||||||
|
def test_part2():
|
||||||
|
data = utils.read_data(day_num, 'test01.txt')
|
||||||
|
expected = 70
|
||||||
|
result = part2(data)
|
||||||
|
assert result == expected
|
||||||
Loading…
Add table
Add a link
Reference in a new issue