Skip to content

Instantly share code, notes, and snippets.

@Shogun89
Created December 11, 2022 22:11
Show Gist options
  • Save Shogun89/b7b1f487ce34990e7a7c465b36734543 to your computer and use it in GitHub Desktop.
Save Shogun89/b7b1f487ce34990e7a7c465b36734543 to your computer and use it in GitHub Desktop.
Advent of Code - Day 3
BdbzzddChsWrRFbzBrszbhWMLNJHLLLLHZtSLglFNZHLJH
nnfMwqpQTMffHlNNLllHnZSS
cGpcMwfppfqcjcTCBBzWDsDbDrjzWz
LhfjhcdjcGdhFfdGfdjdvwCCZMvvLvWwMLCLSwZC
rDnsbmptPmlbQMCrQWQQBZQW
gltgVPngDPbptPsbPzVgmDldfTdfczThjJJjfMcJdFHjjH
dGlgDflTLLLrRLTLVdQLcQMnbvHbbFzNNvMbnHHn
sZjWJJCSjWqfCqSjSmJSbFvCzBMBBzHncHNvMBHN
twqqwpZwfrlwRwDGDR
zCGGFTQMQrsNRNGZdR
cLLQgPDpgcgmvPRHrwBdvrNZ
glWpmJWQDcJpQnpjSmbhFtMnqFfCVTCFCFFM
zNZWFNZBFrGTdBcZZBdJTrGrmgvppgDHwHmgVHCHCvCPDjzC
qtqqPnLSfLwvjvvgvvqH
MtbLLLQbRfPRfnbnnLMtnsbdBNsrGWNWcNcTBWZrrcrWcJ
sZwstbbDVlHtbhcrhhZLrRpNQN
jqGjjFjWnzWGgqWjJJNphnLMRhLhcrhcrSLN
qCJzFJdvmHvbtpbb
ZSRsvvQvZpsRQGJghClPCwGPChCP
FVdMLDdtDRdDcBtmcVFntwgJJTlnNPwJnlTlwlTPgN
VqttMWFmDbjbzrSWRQ
TsDSBcwshdwSCrgRWZBvgGRG
LPVJLqqJbbzpFqwpbvgGRmZPrmZgCvCCfr
tzJlJzQllFLqtwHhjNSdtthjDhTN
fsDLDDnwvnSdqLSsFSDfsLpbgVttPMpPNjMWVMNfpjgW
jhHmBmlrTBBHRPVtMZbppNPPZB
JmTTrTmjRTJqSQQSFqQw
HPzZFgPFMCHJCcZMcDQGwpLqPLqppwhGvv
BrWRqbqRsTSTqNddrVrthLQVwnpwphnvnDnGvGDn
tSbBfsRbTfqjJqjCqm
pCqrqzmqZzrmCCvCJwJPBRwJBWBmwWBJ
VqbqbjFLFfSHnfctBwDdDFTwtRRTDF
LVcnbjHLSqHnhbSGGppCMMZMphpNrQ
PhTcTPsSPCMvvhhMRPttbNWfNsWFNfWWtpNw
rdQrDbJBVVjrBVdLjHHHWNWwfHtzzNtFpZZptppg
JJVGGdddjDjDJmdjGqqRSbPMTvcRlqnnMlvT
SqGfTrBlSrrrfGGQvCnqZhZmPPhvJh
LdVNwgsjdjHmjWwDsDpwsHWtnCnQQQQNnvCnbJZQbNbtZZ
DjssDHLLVppDssdLspswFLVjzfFMTfSBcTRcrFSBzBTzmGzr
JSJJqlldpJlcdVWMlgMJrcCjrhzHCwTjHrQzwTzZ
bBvsGBGNFDNRFNFBRDPsDDHCChhhrZRQQzhjhCjTzWCr
FvbLFGDDtWDFBnPGFDWGqJMgJpSdVStllttlppVS
clpBdBQBsqGpQbVdqTTWRTSFgLLggffg
NzvwmHvZtZZgbDSCLDmfmm
jPJjthHzNwPvvjwjNzPzztZBlrccpbVGBQhlGBVlrpnpBs
NmFFGlGmzCrNWHvFmFWCFvQPTdDDlbbdgJPtgbbdPDcc
RwfBqLwZqffqnPbdDgVQDdtRbT
hnptqLMMLwqjMMjzSzHmhvNNrvvhhz
hqVrDdPdVDqjsDrjjqsfrrWlctvHJNLfvNcLHNNZRNZHvfZL
CSnWQSGBBSnmBnTmSbQbNZZMJNJMccGNHLZNNvNv
gFnmBmBnTCpwmBbgWVqjPsrsjplVrjlqPr
vgVgJJCphzFjzbwljwww
PWmfDgrPrPWlSWqSWlSZ
rrTHQTGTPHDDHgPrcrcPmDPhdtGvnvNnttJCdJhtGVnpdM
DDDhNgWNLWgDqDgtgtwSngjVSQdf
cvFrcGmBrrrCdSfSJQ
mBHzFFvFzmsBspsFsZqhqbWlWdPDlLHbqZ
TLNpGpRzwGQLLQRTwdvWdWbdbgdBlblb
FJDVzZzHfZHVzcHgnvHnvngvvc
MzDVSmZPPrqhGmCqQqLR
mqHWcBHVcgsbhhnTrrTg
fWftGtfJpwJMSdFDLFSGDGFnnNrbrhTNsZnrhTswZZnnsb
dSftppdSFStLDpQfLjWHQvWBmmqVjCqcVv
frfNzgvzzzJwJqpRcP
VdVSnGnHqhDDTdqhdLWmjMTmjMPjPmTsmsmjmR
BdGLSWtBSWDtVqdSDVGqtSSHFZFZtQbZlZfNgFffrgNrvgrl
jBVSjsJcLcqqjtgcmRFRNFFzFm
CnHnWQQGGWnnCnfvCTmZRZgNtfZtNDZPtNDtzl
mWWGGdmQQWwrHHMBBBhrBVqshBLBSL
cLtFcllvrslGLcLHVzDZQzzpznWzQtQZ
TmShfSSPJRRBBfSgmdfBJhDNVpGzVZpzQgZgbWzpnDGp
BhJPfSqdhqJRdBdPqTJBChvrFlHvvCGCccHsMscvrHvv
zfddZTpZLzLDfLtDCttdTfZPnlcPcnhjPDnlcjMchDPjnP
MQsFvFHJsQvmNvvswljgbPbwlwjnmcch
VFVqvqFQHqVJRVCBLpqTGMzCqtMZ
PZdVgNdQQcdcZQtGhnHtBlvlvWTnbBHWWH
CDJmzqFmMmLfqmzFwqfzfwMRvpRbTWBBWDnlnbnWnTNTnB
zFfffjCqwLJCfrCFjCLCzCMsjSZjQNPhQGVSQQZhsGjGgd
nbHntnqPQwTHwQVC
BzfSZSpcBZpzpPhSBjRTCBWTTRWTTTWR
pvZpzPzNfhddJGmmNnJb
GwTgWlvbgTwMrbwTrlWvwtHBNtNvBhBtdZcShHDtNS
PnndmnCmnJFnsmRdmFnnZDhRRScRQQHDtDNtcDQS
CLffLsmqqpJljVdlpMpWlr
dPCzBLTSLqmqdSCsmrTDVQjZfjfVVZnZhhhLGQ
wwFpgvPJNwgPPwvZGnQhbZQQFfQZbf
WvRwwJpHHgpNMNqdTdCdqrmHBPtm
DbWwjSGFSFfwGfCwDSSPPjLhgrrLWRJRgggJphLzpJLq
lQTnMHdcQBvlHMMZBcHHTrbzpdzgqrpLdqzzVRVRVV
vlvlNlBQvBZTQBnHnQTTBBPwPNCCsfSFmbSFfmGPwFmj
hGGQtbVjhRqlmqqrmDlpmw
gPMZsMgdssCPPsvrgZcTZTPSnnLLnBWDwLmwWwBnmWSnWNWB
TsvgMPdcgCfMdcsZJRQhVfVRVQFFQGtr
NfpFTTpFNbpZMRFrJMMMCv
dWJPngDWBtPVBdPVGHZzCGHZrrvZRSMSzv
WDDDVDPlWnLBVgnsgJmQJNqThNmbjlqbbh
vnznqvfrzzVzrvvnfVqztBtGbMCdGmCcdccJccCLCcpSSgcL
RQsDsljDlhssWshHhlhsHTlLbgJLpmgbbcMSpSSbcSJgjd
WswhhHWlRTsQDwWHTRhsvNVvwqzfVmNBtZNmnzzq
cjcPfLlQtPsZQlfHZJqVSFdVwmSRRqSSddwDvF
MgNbBgzgnwdPRFmSPn
CMGbNNMhCMzzPzBpTNPGBclLcLfsptHQfQlZssLcLf
slsdfpSlllpTVJJGgGDgHMdV
wrBQrbQrhQcpbQrhLwRBrjVVgGGPgZMtZMVhgMPMGHPg
QQwRnrwRbbRcmQmrjRnjpvNsNTNSlTmsTqCSvsNSWz
GWNwppdHdpmzgPFPCRmlCBPB
bSrJhJSsMhrJMDPRCPBlwVCtVSLV
QbsbwqQZvrJhhQrhZZrhchTfnTWGNvWpNnjHGvGjNdGT
NMZGmnMBWmwmNnGwHrHvHzfrvrVVVj
pSbDRLgbpJDPpRZRQjjFqVhhDFjDVqfrzv
sQQscLTZcsTpRsBnmlBcdCMBMtlc
hwWslbGWbRvLZvcscZ
gQnmmrNTmSnTfgwDwVwpJvJPJzLqLJTLLvRcZz
mrmnSrDNNQSmmwdggrrDbHMGhtdtGhGlhtClMGhM
qQdlGcvDQDQvDdmtPmmmlStbjSrm
CpNhzWTCTRznBMvwtTjMrHtSvj
nWzsfZCsBhNpZLgGdQDddvqd
ggjTjJWDVVVRTwQcZWvchshWhs
LmFfLfSmBtCttNLfCFBPFNBvvvhrcQdvsrsdSwdqcwrwSw
CHttltmlPLMHRTgJQDgRDTMb
RPJgCdhgPPSzvWDcCfGHDcvf
HbrrwBspTwWDDnqbZjjD
rQrFsrsstQMQHJdHQm
GVwQVGBZBNQwsjdNcMMlgJNPgj
SWFfSzTCSWFCSpgnJLSjpMdc
FhTbvrzrMrDCVHsVsHGBtHwv
FsqjjVzFVWFqRRWBssdpNSBHwJpHHJJdddSN
lQgmhvbTcgTgfhTQhSCFCGJHSlwNtJdGHG
vgZPbbfMhbTmchhjRFRnsDRPWVqzWz
cvwfjjcJjqhctvSpCgCFVhrFCrpC
mRsQmsMlNNzznWQlRnsMRQlSCpLNbpwSSSrwFLDFLLLgFp
zznlnGlmRmMlPZnGQzMszMRfccTjcBJjtJtJjqTZtfwBTt
PtCwCCVqbjNNqqvGssPmHGsHMfPH
dcddcWFDJJJcLczhWQdcDScZvHZgpGfsvMfSmsggSvvnvM
TTQmTDhdQQzdRwjBVrRwCwBbBr
BnBsFHCrcnBrMBPSmMSCmrcFqnZLddLhdhdGLvqLqgqnLJJp
WfjTlNVDTtjzNWTlVMWNlTwTJphdgpvJLGLdgghZvGLpwddq
zVjbVblVDlNTlbzTzDjllDTzHmHCsmcMHcSBrCBbrHBcBPSC
ddlcGQlCjQNGQmPLslZTlmTtfT
MDzMwSwqpzpDRpWRJwgZhttrZmTPfZmrmtrMZZ
JSqRBpJzwgDDpqDqvpBRdCjbCjQCFCbHvdGPjdHQ
bwzPwGLZMsbJMPPLGLMQzbhhQRvWWtVqVhgCVtWWQDqt
HddrHFnFNpVnVLhnvLRV
NLdrFjHTBrrdjFSpFmNBmSfZMwZMJJfSffbwzwPbczbJ
QTWSzTTLwTfwflSNJRdvGlRGcNgJBl
FnmmqrqbBBgRbHGc
MFZqrCVCqmZCprspFZmnnMsDfzWzDwSfjSwPQPTLhffwBLwj
npfgFRTZRRnDZLdgRfRrrjcWzGpWGGGQrjjWpP
vblVbvSShhVzHWjzzlrPWG
bVwqvCBtShqBhCCtqhNqCJRTTBDFJJLnJgDRWFBnWg
nHDNQvgvnNZHDnsGcjfNTrTfVrfL
SRWFSBRLtSFqjTrVVcsVjTSG
BdBbRttWBdbdWdbppmZlLmgwHvgQvgLZ
PQRZlpDDptQSclBMGVBdhVFGBMpf
nnrsTCWjLJsnsSMShhGJfwffwV
vjzqsjqgSHbbtvHZ
DgFmbdSDZbPgLbDDmFwZwgLSfccGcGvnvvngsGGnsGMNWsWs
HqztHHhHVhHjhRRhJtCVBCfNprMWpcMMJfsvvMsGscpG
tjVtBVTBtHHqCRqtzQwTPSNdSwPTTbPFDdml
sbmBmHZbRRRmwBmsSjHzRjmSCNFLNLLQNQhFgtQLzNztlrff
MpqPPDPVnGqrJpcqqJpMVlgtlLFLChCgChCCQgCtCD
VdcVVJvdrVWHbwHWBSSBRb
tPDVBzzNSNdDSQpMQMTQJMMQMN
LqSWSmbsmfQTTGZMWGCW
cLjLcbrjqmvfqLbfmqLwDBBzSHPzlwzcdBlnnP
SbnHrGHSrrhHJBrrScDfcPDMfpPGcGcpDL
QTpmpmmQWlZsTvVQDMgggFLgFcPf
zsCNlltCslzlTNsNlShwdJCpSqdHrBhpwr
JZmFrmLGjFZdDGrrVTvzmPVvRRVzwzzl
WBnfMDBqMsgDBqpBvzwVlCwRTRRPpvlw
WfghfttggfSnnqbDftfqSBBDQdHhZFFJrrHFjGJdGjFrjQLj
rNLRjrlVlrFRJzlsjrVlRFGCmnMtftgCNDDgDmCfqNgPNM
SpdBpdHbpHWhZqnCdtCGggqCPn
QHHvvWwWhwVVQRscVzGl
QffLtMQGMQfDMMwMTJwqWHvH
nSSFznjFcfjTgVJTJjvT
RrBpcfSNpRBcFshrCtQrDGLPQb
GctcMldStGwPPbcLsQTV
jhnzDgnHnnfPVwHQTTLTds
gBgzDDhzvqdGGvrtdvtm
PPwRWVTvRvPVLwRpMlzmbmsbHWjbbs
dFTFCNfdjzjFjsMF
SgdffSTrnnqCgdqgcNrfSZqVvVLRDPJZQwJBLPQPtLZwJJ
HSzDQftHphTBHFhr
WMmJsMJNLWNPmmsncjMJcjtvwggVvhFFFhjrVwrjrjppvT
WWPsJJCWCtZZZRGC
SfFZQDRLgpLlRgQRRRFWTsbhBhgTjbWBjhshgw
tHVNGjtzzHvMMJJhrWJNrTrPbP
jvVVvGCGtCmjHtdHzQQfDpSSlDRnFfQFmR
ZBBPfVVPPrVmrWZJzNdPznbnbSzznP
gvgpGqFFMgMcGgwLwGpcJNZSTZbdbdzNNSlqbTnn
ssZLgsMLQvcFpVrhCsmtWHjrrW
nFvhRnWWzBRPHQqcqqCqmFbd
SJDJgVprLfDfbJmHmWWHQtJW
wVsgWVSTgLjfSsVjVBRvRNwwGGRhNZhRMZ
wTRrRBCTPTBPlgMqgHCqggHLgg
dmDzpQpBdmWmWzzzDFzjGNMSWLSgLVGGLVNSLgSg
JbFdmQQJpjpptQbdJJmDmdtnZhZRflTlnTrTlrhBwPPc
jwSwssQbwbStlhRgtsVstn
zPzFdFFZccPDgntzVHHgghRz
vVVdfFmZPDMWZZBmGQbwJJGCLwwMwJCS
PLLffLFqqNLwSffbnVzzRf
lsmgTggChrgDtZsZVblMVJMznVnwMBnb
hDZZTmZvhTgstvwNFdqpWQcqvP
mmWwpwqtmmHTqHpprRZQPPZLZWSFRFRB
gzcgscgbfvhRRNZQRRQPvr
JsjhcshCfJgrrpttTCTplH
TvNrvNrJfWWvtJLTHhvZZhQQwVGZZhbV
mFCPmBMPlPsPPBsMFPszbHQJwwHHhbZVQVzjhGHZ
qmlBsdCSmJBmsBBMnMMTDWDNcLrDprSNcWDNrW
HSnHCVqTddFHSVqFqdStSQGQwRzQCzCRzGRRGNPQwz
jhlBpgNvlfZjlfvmpgfgfBrMRRwMMPPLQMZRPMWMMZPQ
hflfpgjfBfDcpchlpvndbHFDdHqSqNVqNVdn
QBfhlVNfHSZHfVCVHSQfZfTCctdvdDTRtjDCtTRsjsvj
brrWWqzFWzwWbswDchhTRtDhjT
gbrFLnpzqrWPgqpLWrhnHGZlSfLfHfQBGVfHHNVG
hcFmVScmQBVhtcvfHLfvHSnbHRLn
lzQqlDqgpWPvJfRnlNJvww
PjCCCPgDgqGzmMtCQstZmBFs
GrnrHrmVVFMFhSSbSfhR
zjTqLtBjjdWdWTLshMZMDbPNRMSSqSPNfD
dTWjdtwWhjWTBzcnrpcwmQpCwcpw
BgtVBsgVVJhgGsSGJbghJqbsjLfZmLjmmtfZndNNZFFZNLdm
MHTlzlwHSvPvzMSPCTMQCNZdjjmnfQjdZfNLjF
HMDTwPDpzrTzpScBghDbVqRBgRBJsR
qjCsTmrrnnCmhcFrCjqmThRlbHGvJGvvvbRbbJRcQJRG
fVBBTfMdSZLNZgPdgglGRdbtbtJRllJWJtWb
TSZZSpNMPBLgpZLVgppBDFhzDmjrnzhjssFqDhzFnn
MDtDMWmMQmdzmMMqvlGfRcjzgpcPPjczPl
sZsHJWNJFJNbWFBhFBnnbVclbVVPglfcRggffGGpjl
srHWLNZZJdSLSdvDMw
BFqsPnsZcgnncggccqsqqpDPtDWPpPNTNSNThrWtSj
dQbfQQJJdwdmFRbJLRJdMrfDWrjpDrrprhDDDDNWWD
QGwdJmCFJZvGsvvncB
GRRNSjrffGTSPrNTffSgcJTwWJZbbZvwvwtVwWVJZv
CMcFsqmBQzMzshsBQBQvLWmJVwZtpJLJwJLvwt
qBzChnQlzMcRSnnRRjHGGg
dPPbPWNdTBbDpHPHpNsgzvFlglvHzvSFzCFF
fntqhGhRMhnnnGGCVMRhCVlSjswFvvjzjSzvQVSgsl
MMqqJJRCnMhZLCRhtPNrpZPDDWTDTrNBmD
VjVGNTNlNchVjNGRWrSWWtZtRrzncR
BTbbbwDmCDLTbDwfHmzZMmRrWtzPrZSZtrrz
qDLLqvwLBsfBbBdQFQTJhqThVTQJ
qBqPBGZflhrWznzZZdsnzv
FmHRcCCsCDwDbjtzdjWbdz
cTRwCCNHFNmwRgmFTNCFTJqqfqPJsPhPBlsrsfGf
JTNhhNrCTcWpJJcpWw
LLdLsfMsdStbtggLbnTpwfWDzpjvnnjzcz
MqSZsgbMbGFbZtgTSZSFSLhhmHlBQlmrmrPHHCPPZPBr
GgjjgpGvpJJtjgvPrJttsLjVwCsQsQNLsfLfMVCl
RddqZqzcZdSWcHdcqQfQLMwVflfNQNMQ
FncWTRcFlHWFmcFTgPJhGvDgpnnhhGtG
ZGPFJsPQCbZCCbgz
nrvrnGWTwwqTBRcpCRRg
DnGWDldNmSLSMdMQ
ScDmPPPmjmjjWgtdSmdmCnNqVQVVrNRTZTQTQDHHZGNH
wbbMhLvMJpRwJQrJGHqQGrQHqr
wzhspwpppswsMFLmtnzjdcmdPRWPtS
fPlLTtBlTjDbWcTMJcncWqss
LdvLrLpCRRQQmvhhVNpwRMWJZcFMZWJwJFFFwZsGcs
prrRVpvvRVNmRvvzHjHPlzPLSffbbPHS
bbCbzsQbBzbBFbFzFfJHfVJPfVPtzZttpm
hwvrjDDwjcDcvdnNvwdnwwDPpNtNMVtPpJpRmVMPfmtVZR
mmqDWjhcqhwvDDdTsSGGCbQGSBBLTGGl
wthtwrBQhhSrqJJVLMRPPtJLPF
vbmbZqfqgsfHmcllmLLJNLJMNFJNNvPGJn
jHlDscllClCCgbZzhWqBzBQzprWCqS
DwpDlwDwllhJwbDFNDwFPhDnQnZZzVVnnBrtNznzSSzZrr
MHPfWRTgWzTQmSTTZt
GdPjHLRMCfcGvwqDGbFq
NGdNpDPdNGLppLpwSNFFFDLwnnZbMnrHlHZQcHbcnHQcPcQM
jBgBsjssgjWJVGhBfhvJVnMlbnZQVrrrlHCcCZrl
sRBgvRffhhtvtBgvjgttWBJTLmFLLwdwzFdqLDDDqFGdLFTd
RBzRGRGBgnrPJrRGGWWbDggZTSTVZVFFSVZZdw
tfmLhjfshNNsqpppfjHdwVdQZbVbQFVVTmSVDV
jvqtwHqCNLNsNhNfjssLCzGJWcBRJRBCBBBrrWnGrG
cGDBdNFdNdDStNtGdGQGscDMvZjjZWMvMLjsjjLZjLsJLv
fbRnRzHVPClfRlbbmfHRlPvZvMLpqjvZJqZMpzMpZjBZ
gfbfBgCHCPVNhNGgTtFDcF
ljjvLZvvllFnlLJLJjLWFQrVssFpsGMFpNMGsr
qbHSqHTcHChqCmTSRqqBVpVdBQsVQQGHdMprWV
DbtcCqRhhTRmDnPMlLgfgztlZZ
QtMQzPZcbtGgTtLvtf
HwcDsdVVDnNSGLhwvffJvfTT
CSsdSHNmSDHcCqqcrrzQcC
nDNDfmMnmDJRNfJJdMDRBdwjcTtsSHvBTswTjwLtsCts
QcbQrZZggGWVVWbZZjStswCSCCttGCwLvC
ZgZgbzVglVbchVVrVhFWWpnnpNJmJMqDfMJnMRqNDDMD
WMfNvsjWGjsqFjqTRRQVJztDzVmJHbft
ZPhplcrLrmzQGzmz
ZPddLPlcSclhZChndMvgTjjWNGWMGWBj
nDLjMchghDcljfjffpfsqTmGCTGszGZVVzHV
wdFJPFrQRwSNbjVQCTGsHZHmHCHs
BRJJSddvdBrJwrBRNRFRSPRjvclLpWhpglgWpLplltnMgh
BbVRzMcpbMNMHMTJmWdljdlJjT
GtsqFnfvGSFqGfQvgnWWZlLlLjZWtWldPmlT
sSsFqsqsGghwQQmfGRHbbVczbwwBpBpHcw
BBFCBJCsGJBBgvgsvTlVhgNg
ZnLdjRQddLRnZrlScHRVTTSHhRvg
fnnjZLWdrnqdWrrPLddqVqBzGDJJFGCBDfJmbDzFMbmB
import string
from typing import Tuple
def fetch_input(file) -> list[str]:
with open(file) as f:
lines = f.readlines()
return lines
def fetch_compartments(rucksack) -> Tuple[str, str]:
n_item = len(rucksack)
compartment1 = rucksack[:n_item//2]
compartment2 = rucksack[n_item//2:]
return compartment1, compartment2
def fetch_common_item(compartment1, compartment2) -> str:
common_item = set(compartment1).intersection(set(compartment2))
common_item = ''.join(common_item)
return common_item
def fetch_priority(letter) -> int:
letters = string.ascii_letters
priority = letters.index(letter) + 1
return priority
def sum_priority(rucksacks) -> int:
total_priority = 0
for rucksack in rucksacks:
c1, c2 = fetch_compartments(rucksack)
common_item = fetch_common_item(c1, c2)
priority = fetch_priority(common_item)
total_priority += priority
return total_priority
file = 'd3_input.txt'
rucksacks = fetch_input(file)
total_priority = sum_priority(rucksacks)
print("The total priority is {}".format(total_priority))
import string
def fetch_rucksacks(file) -> list[str]:
with open(file) as f:
lines = f.readlines()
return lines
def fetch_groups(rucksacks) -> list[list[str]]:
group_size = 3
groups = [rucksacks[x:x+group_size] for x in range(0, len(rucksacks), 3)]
return groups
def fetch_common_item(group) -> str:
common_item = set.intersection(*[set(rucksack) for rucksack in group ])
common_item = ''.join(common_item)
common_item = common_item.strip()
return common_item
def fetch_priority(letter) -> int:
letters = string.ascii_letters
priority = letters.index(letter) + 1
return priority
def fetch_priorites(groups) -> list[int]:
priorities = []
for group in groups:
common_item = fetch_common_item(group)
priority = fetch_priority(common_item)
priorities.append(priority)
return priorities
file = 'd3_input.txt'
rucksacks = fetch_rucksacks(file)
groups = fetch_groups(rucksacks)
priorities = fetch_priorites(groups)
total_priority = sum(priorities)
print("The total priority is {}".format(total_priority))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment