Skip to content

Instantly share code, notes, and snippets.

@mrjazz
Last active December 3, 2022 16:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrjazz/2cc73053f53f144c579f5e3bbf17bc02 to your computer and use it in GitHub Desktop.
Save mrjazz/2cc73053f53f144c579f5e3bbf17bc02 to your computer and use it in GitHub Desktop.
const input = `gfWpjRRQffQGCHHJsGqjsj
SclzJZZvmmnPbJtVSqqNBqVCBdSCsd
tlbvZJDZtmtPcJmlPnhMFQWWpMRFTfLDRRTWRp
HjMPgSWjVrjgbHRRSSMRgjRdpdbGdlcdCvQfcCdlwQJfdf
LNDnhtNtLNFFZDtFnhzvdldDflvvDCdlJfldpJ
ZFLFZZmFtFtTNTSPRrVPWWMpRP
qLBSBLRwmgzqCbzCffDlrfCV
TFFFHNWFMFFMpHpGHMTHGNhrldWZCsdZsslZlZfrflDVss
PTMcPGntTThHhTGctnMvSwjjvmmqLBmnjqqgCR
nClJtMwwntqVVPJcgZqq
mjpsDcrcSSFFPZqFBWWgVP
vQcjsvhrvvrmhbmNHMNnlHbNMtCtNM
bgvvhnTQtjrrrhsDDf
pLSMltLzLLSjFrSSjrSJHD
zNWRLBdZPllPQtCvttgCqb
DRlDrrFTNDNlgzsGTBfcnqhhcnJfcrCSqc
MMmmdWtdLmvtldHjMmQfPBqSJWnfCCCqcWSSPJ
vjHMjLmjpLtHptQLmHvwTRgNVVpTzZFZgZRlsVTN
rzpMpDCGFCFFjRFsRPFRNFPv
fWclbHCHtSmfvjnmfsvZ
wTcTlSwwtQtWclBQBLGMLMCLVzVLwJGqLd
MQSjLNjPPLLSBPjfQhSPHjDVCjDtVVpDHwbwVpbD
RcmWzsRrzZrmTszWRqWlmRJscbtHwCbndCtcDVddDpdnVnbt
JTsrGGTqmwTlWmTzJzWmhhPLLGgPFgBffSSPhFFM
qMMRNZMDDNWLPqfzCgDcGncVDCgG
wwBFhwhhBgmcVzhghG
tbJbjjtJvwtdtwjpFtlbvtdTLNSMqNqMMgqNHPlZRTNggL
qmjMHsZmZSbjbZMjSLFFFFwgsgvFswpwww
hRJBhmnhhvFFwhcv
llfWDWzrzBNTRfNBrWzzTmZbGTMjPqMmZPjVbSZGSP
CRRPLwwcclcGVppQ
SHFjDjjHDTfSDNTTHfSHjQVGrpmllQQWltVVVZGp
HFlqzDTfqlzwbgPJLwCP
WRCNLphpLppSCWVHNfLRzVnQMnBnMddPMQDFQgrhPQFM
jTjJqvqjvPVJFJFBJF
qTsZbvGqqZlstsmZVljtwqwSHHNWczHSSRcWNSRHzzNfbW
glgzDzHjSrVHcVgbrjmNsscNGmNWssGNNtst
hHPQLHJpwdLpdHfQQtnZmNMwnZGZWwsFZM
QpdhPJRTJfPphJfhCBlVqVvgvVDBbvVqDbHD
VtHzjZpjVtHrprgGmjHsGHNdSJFQRcLJqCdQcSqJNpcq
bBWfTPwhbfDlMnhffRwQJQNdqJcLFQLSdR
bhBhvfMWTnlDnTBfPSmvmjsjmmGtzHtsHm
pcRPRPWrSDcJGZSStmwZZS
VnLfCfTlfVzfnMMBCqVNZJdtjNtJjhJdGNNbwT
BLvqCCMVsnRQsPQgDcZH
cQbqqQhDGhlQfQlhQrqGsTNgLgCpRgLTPPPLNbpg
wtHVddVFwSHznZwwznCpRBdjppNBNTTdCjRR
ZtWFwWtSmvVnwZDrCMGfQlDDJQmD
PzPZGCZzrZrlhdjdCqfCsqQdRD
cbvZLVVFvbbNSNFHSDnsDQdnfqNQDRngsR
FJHSLSFSScJJbWHFmFVFSZmrrzBmhtBwmzBMPMPzPh
nlpFcLBgcVcLbssGVBGGrlpGPhJJJJJqPBZPDNMQMJJhJQZZ
SSTjHzfHwtZSPVQVQMRQ
TzVHwWfTtzwdVzsbFnGgsbdcGrLc
FppVBRVZDdLmrDGmmfrQ
NtNMPNshJCzznLGJSrqRrRrr
tRssthhPlCWhPzsWtzhzCbVVjwTpVwdZZTpwjbdBbwBc
TTWblHWScvPCCHTWFzSrqqsNNSmdmqrrpz
RLRwjjnjZNprzmmZcq
QQgtQnccQDGjgLDRRcLthQhFBvCbMtMHTWlBFllBbFCMTW
WnBVNvDnVsNvZWdrWDLVDMbsHpTjpHCSSClsbSCCMH
GPFtmztzgPhRFtJTdbTwjppSCjpgSl
hJcfPtQhdtWNVZqNnqNQ
GLcqZPPsnqQcFsmBBrqRvrddNqrC
MtHthJwLllwvjRvvtrvBRS
VHMfDLbpfznszZQG
WBSdPlQPRfBtGQPfBGPBJgzgjwsJzsszJwCrdwCT
ZpppVpMVpnVHMVVbZRJrCgwRzTJrwNJw
MvhmnpLqLmhVmBlftRQBFSlR
hhQlSJqhtCSnqZJnqShSlNDwRzpvdwRlMBMMdcjRjMpMRc
frrGmLmWbfFrsmFHmBzBvBcwdJbvpjzbMM
mmgFrVGLWJLFGsgfhSVtVPqntqnnSStN
SFJTJTSqswwFQbwf
cDtcWPclrtPwVsfssQmN
HDtwWCgWdggdzSGJMSzGMq
JpqJtWRJMhCMJpMQCWtFrjgHdgdlgllwNjlQjldH
fBzPZcZvnBmDnZvZBZDmPvglVVVdgHHSwrNRgVgwNPRH
GbZnZccfvcsZmccsmnnZTRbCCMWFTWJqFCCMJFRT
vrrFqrFTBTmLmNrLMqMTHddJbHpWnhdWdWbHhJGM
wBzfwzcQSzWSSshpdWGp
gwjPPPDQtzQlzQDPqTgLBRmRqZBvqFNR
bWVptFFsbPcZsGLhsZGmLB
qnWrnrHdMCDCNqfWmvRRZSSRLdRGZGRG
nNqqNDfMrMWHDQNHzWfHNDnwzblpzFlbwtFbVVlwVcPJpP
BHJhlHdJQggvddglJBBhglhQzZHPZpFFPDMzFDDRDFZZDFZD
rSTfqnCffMfCVfCLNqbzbjWNDbbWDPFpPFbP
nfnnrSfCTVSwrqSLCGfTGlgQhlvsGMJQJBhhssJhGc
tBjjDjjqfDjLfJlrLgglvmrlmrcc
TwNNTVhwwpgvGSNNSssS
TbwhnvvChhbVRTPPRJBJQQfJttMQQJCQfW
mWSvSQVgmWQsQvspQJlrlLnJLLpCClhhlp
bFHRjZdNjjBZzFzhtnCllCcJLrCBll
HFFNHbdZZLZjfPFjHVQmWDDVsvsmTqVqDf
JJPllQQClqgBCgdHwHbpjVTwHd
tmGZtjGjHZpVbfMT
ShGjNGWmDSNcNRtGmshDRzzCvzQJJRBLrvlrBPJv
cTpqsTWqVVpsNLfvCDFlMFDVFL
JnndJPddQgzHlvMJFDhLCG
BjtntgdRnQgzjdBRQBlpNWrTTlNTSwNpWS
qHmqLVLjmVqsDBLtmjmbtPwCTwwPzGWRgGwGwMwW
ZhcCNCSprRTWTwSnWW
hflhZvvQhppZfcNpvrhpQHjVjLmbVmmVHVCFDvqVFb
nnNrwDnZrspwDNnZsNSDsNbCmpjvMTPQjLMmPmmQPGBTQP
FdVtRdRfctBQPmTtTLQB
qhzWVWJqVHwbhlLSsS
htWmhDhFztnztDhtBmBtghPRSrpfjVwPdfPwpwnRSVrr
cbCHvgJGcTqbqcbqqqcqsMsRVrSCwffdRPPpVpwCRSwfjj
GlgGQqTqbgQzttmBNNFz
NWQNQgdTgjQNddTZfrCQWRDnnnbqnLqnRcjJlqqvDj
FtSSmSmJhpllcclDvpln
JBVVSsSFBVBttShFGSPQfCGNdrMfZZTQTZNNdC
HgHthMhphcbfbMMfHhsGGDCRRVlcVSScsCRz
nWvPFqLqPNdjnNLnjdJnPdWjGlssDPSsllVCRzlTCTGlSDzS
RvddJRJQHwQwpZZb
gdZwgpjZZQtHTdrWrwdpWRnlhNBRlLbFthNhflhBnL
CVzDCPGMVqVmGsGGbJCmCDvMcRcqnBFFFnRBBNRBBNqhnFfF
DsmSGsGPzvMGJvdbgTSTbjbSSdgH
jBGmbNBQGdBNNDJNQRLLVDsHtDRzHHZZcH
wCWPFWPCrPhPrplvprhwpCHHtszttqZslRVHLtzVlJZL
vprMMvMnJCwnnPShNGSTfGSfNmmgdNff
bPtLbvVWWztbLSVVnbszpzQsrcDDBdpRcDrs
llZmgCZqgCFgmdRdJcscBdJsmQ
FZlgfqCFfgZHlqCMCglwCFGWntLLSMRSPGPVttWRtVGL
vtnDsDtrnrSvrMVmbrrJgPCmBm
FpQHzFclLVzWHhwHLQLlHLzPmMBQCJTdTmCTmBTJTTmgQg
pllcVWqlffZqZtZD
TSSZWpsQmZWcTZSvsTTTppNPzrBPrNBrzQNVFrBBNPqP
CgjmCbtGgftMmLtLmffzBzJJJNVVMNzNBqJrFN
gjgjLgtLwgbGjHdhhGdvmlnllnpWnplZvcvwTl
htLrRFRtbbhlGSLRtbJBJsjBmgMMgJgtmBzz
pZQWddQQfpZZffcDQZwddQwDMqDDsPgGJJzzjqzgJMBJgmms
QdcQTdwpGNwfrCRlRVlNLSbb
wrdvpVBVpMGPPjWjGZJJZT
tChCSlNfCCHtvHHWPHPZ
RbRRNvmcqcblfMwwdVBQQqqdpL
qcctqRcqmcHWzHBdDMZhfwthBnwt
JFsSNMSgNSNJJMGJBBdjhFDfhwhBrwnZ
TbgbsSgJMTJllblLCSPlsTCVQmRVVWpQzzqpqzVzHLQzcc
CVcWbjjSSCSSnpjWpCpprhHZlHtHGzHrZrHGclrl
gqZqdddLgmgNqvTGGHvvmrrGHT
FFDgZfZNLMgNfdDqDRnsnjBpbSbnMBBWpQpB
qwpQFwRnqFFfSBSfFt
LJJLGLWWtZlbgWHgGshhSdSVzmhHmfVzzC
lrbrbrNNJgDMLLbblGctvvvDqPcqctTTTcqP
vnblvbfHvlcHMlHlZbSPLTPLwCMBRRPRRFFR
tszzBqtzDsWVPRSmzLVmVL
tsNsDDNgGsqBrgBpgdHQbfhflcHdpZvdbh
cCpLtpGGLsgsppcpmGGHMtjfHRVhvvVVFRfhjV
NWnnnNNndQnQZdCdzzRVMHzvhhHWWWjj
CPJJrnSZpGDJLGTL
cnJzpcnmnQVFbzTlvTHBlb
tWCDPjfsDGfZhddhjjdTvFTgFgvbnFHvdHqT
hjfCjwDDGjPthsfhsnGNrJcQcRmJMLVJrJNMLw
CPPRrSlRccPcwTHwfdwTHdfl
mLQLLjhQhhQLZvpzssHDhdTswzzTJD
gmjbBvQLWmgbQZBCSRnnnSMVCBHnBS
sWrBJbsVqschzhQzHh
gtFmztnSlSfdlmnZSdSwcwGRTjcTcwwTcHccRg
FzFDzMZCdDZtCSrJVBMqWVrqNBqN
TvWlhhfhZJVgtSSl
ddBdGGdFmmBbdzqqPDDGGmdDZSgttHtZppSgzZHSgMhtMgtz
PGqdrbbbdPnrcjjhTRWLLc
trrmJWcrVwVbcPScdcBdGPHH
JTQnfjlJTpQFfMLlNJHHGDPdGsSdDjHGDPPH
ffFfnCTTCfTlplTMvNVzqWvwVzrrhwmWhJbW
hVtDtgcghzJpmmhlwp
srsnrqqsPqsBPvnqRBRMPbnwlplpmCStJwmzJPtJzJfwSw
bbrqjBbvGsjGGBWqMVFFVDNVNjZjgtgFgZ
mnmhBDHhwWCHsTgRsH
dcSlFvccMFMMFFggNsTzzvvzWnVW
llQdllZScFplJPpdcZSqBqjhmtnrwrDGnQGhrq
ZffVNgfTdmPVltsnnGwgQDnB
rMCFLMHpzCMFzHpzbrcHFLzBwsDsDDnlDBJrDDBBSJSnBn
MLMjMzqpCzvwqTmwZdvq
DDNlWPRqgPRPsRFjJQZbchJZbgQJ
zzrLLznpLbHnjcBHvVvHvJcZ
ndmrTzbMMTfzrTfnTLrzdpmsPPPqlqGDNNsPCRDRqRsD
zzdqTNfTfdfhgQhgqMFSjRDtDRWHqtWlwtqDRS
ssBCrcmpVGZvVRDdSDRwtmWdDb
rvGPCZLCVCPVBZFdnfThgNgLJNhf
bslcrssQwDPbQrrcsbsnQrjMLthPMMRhLRhLRgzmgPhRgM
DffvDfHGfNFdpfTdMtghLBThzVmBhBtM
SNvJNJdflDDbcDWJ
HFlHNpWsTlGWbFsGFTGHFLLNzPPhLVPMzVzMNPhhzP
jSvZtmrqqpcrCpPVzw
dddQvqDgDmjdSQQdqZjStpffWGgBRWTGfGsRlWBlHF
THnTbNrdBnLTHHnTnBrWRTndsccZsLZcDqmLDPcDlQDsmmsZ
ptwzzhpvGSVdqQlmszqmqPqc
wGVjSddCBggCHFWN
LFFbdbhhhvwvfTNdRhhRRvMbHDGjcfcGfDjtDHHcHqGjDqqj
WlQnVpWSSWWsPsgDqDzHDLHjJcttGP
rrWsZrgVnWrWSlmSlmSBFFbvTThhBFvvZLBhRw
BgBdcjThvjFcTggrqvVfzlnnPlrqLt
JpwJGPsQwpwSssHpPLlzlnNlzLLNNLVtsN
JPMmWGmWPmHbHpJbWGJmDmwbBTRZMBBdZCRTRjFjhCZCCBTT
BjbcLFRfBRhnbGjCVVvPllpcPtcDmdlPpvPP
WrMQqCNgsqWWsTNCMZMWWsWPvJDJDddvlpDtZDpDDDDwvP
qNMzzSzSQsGLbFCSCnVR
tTRpHJQpQBZcddhhMhvhJN
zswljflgMFbwPqmNmSdvShLNfLhm
qFbsMCVgsqMwRWHCWDDBDWpt
VSTCCWsJvGpHHCNC
GrqzZrrZjDljcDDlfjMqgRPfPvQPpBHNvHvBpvNQ
rljncDcznjMqhlhZDnltrzhTsGWtbVLFTTWGsbdWJdFTmL
mJPDSJJPZPJNrprSNrDmpZGrhFFhBqjGbGGVbFjhhfqBjBRV
cgnTQHdMQdTHdhqfggBhVqVfVS
nQdLLddssSJrmsNvZrPz
jfjffQzZQQMzZZfZZQFgjDWBCRlCBdTTBGGGRpBCgdhdBG
LrstWtNsbHLsprRBdlGpCwlh
HLnntbnscqLvvPNNfMWSSmDMDPjzjDzS
vhcGwWVvglltcfBn
BBSLrzSJLzJNJrLfPfPRsmDRmflD
jMjFZJNMqzrzZzFNFjNQqJzbCpBBvWdpvTCWhpVwdvHVCGbG
HlrnFmRmtRBQPVBTQHHQ
psSLJsLpTTdPdLTv
fCGgTgfSSCtRtFFzql
pfTpStppcDlWfbpDdzQRsQGJhfffQgJHzN
ZFZFZmBFwVwBVmLmLsRLRhHNzRLRNNzJ
FnnjwVPmnqqqjBjrTdblldCTpcPJtbTD
bdZHdWlrjslMMwGG
rDDTRBTqSqmJLBJRBTSJpmMsMMjhwvfMhjjfVGsLshhC
BqQFRPFRQBJgzrcZNHFdZt
wrDdLlDdPWZPTTrwlZpSsPsHVHsSCHnbzMHM
JtNFttNCjFvpppnMpJgSVS
NFFqFcCQCvfrZmGdZdmqrW
GMNNfJnNddJFJWsv
HSDwCmmghLmwmmHDpsvdFpMWpppptSbp
zCzBCgzhwmhzLrPnVrMqZBNfGf
DrHGtbltbCjjjffPrgsmzmcqsgDczdsmgJ
VZLwQLZLLVwLBQZnLVphhLQQqsTNmzJdcNTzzmJNqlNBsszz
wZLhVMplpQVRRlpVGPfjCjMGCrbHGWWb
BHpFrHHbBNTWWTWNhCPwPLNPjCdjLV
zJRRzJvZlcZsSMJdzSDjDtfDCtDtjDjjjj
dcJcszQJJGRJzRllMpGHpFTWmrTmBTbWWB
qnWWqhDhnjmjCMBlNRrfVfRNCB
vvBLBtGHJTHBddrNVJrVSVdr
BZLTHbgvHvTFBgTFFvhmWmmZDPmmZDsnqncs
WBvmjDbSzTMmHHdpNHNF
ttlflZRfGtfWVRltGtflCdHnJrNJHNHnJddNMNCnpF
VVwssWQQfRGZcszBQzDbjSBvSBDP
lSlQqQVqWWVWfqQWVJSTscdmPPwwTTmjjfpjPp
FCbzHbvHvtgrtFCvbvbbwdTwmsrwnTTpmdswmwcc
DtZbHdghztlLMQlWWhVQ
pqzzFSmdFqbQvlpdDGGrGBWPPBVNQnVttZ
cgcjwfBMhHCjjLMCrtcnPcsnsPGVnrVs
JgCChjjjBHhRRLLjjhplzvzpSFJvzzlDbSqm
mZzVQZMhmrffwfQhWhzmrmpBtRcdbnbcdcMpBbDbncdD
jsLTSlTWRBSDpnDn
GLTsGWGFsfmJGZVJZm
BGWshBGnsFWSLWBLlSSLWRJHnrVPrPcNHCNHctnPPJ
QmvQCqqMTZqvgmvTjpZCMgMtrVctPptHtrNVrptbJJbrRP
CzjCZfCwDzShDWdF
HmQlQHmJnpmptmzt
MTqMjMPvTvVvhpdztZnSwzwZqS
CcbLLPTMtCCsjHNHQFLRRFlRNN
GDFwLLLLSrbdPlFBMFsslFHmZH
TnJCgthHpVTfZMQZQmzWnZ
hjvtjtghtqJvVjhTgNhJTvdvdDDRbbccrwPdcGwrHS
MQQMBPzMGQBPBbDQPMhpnRwsGnRhNrFFpRnF
vmgHcmCTTlvvvZvTmqcTfmCRdddFnwdRdnVwFpVfpRnwNw
gvmqJTcHclCQJNzjMLWbLj
DbqqDDbQFqfNtZSLSq
RrdjPdmrpWBdmWRdccfLtNttSDMZBfftLMLf
dCcgmgRrWcgcppjCVVVVFHFnDnbJnb
fZMFfrtVdZSDVwTgjRMLhwTCLj
cNzPBNpclllzHbmTNRhqCRTgjC
nhhWJzhGPlQcGvsvfJtSfZfrtt
PSzrBWQBBGzBlnSnWtDrqHfNfwVwHcLNjHjwcDNmFH
hbRhtRCRpRvsRgVVVcNHNNNCwLwc
ZtRTRvttWWzBPlGZ
tcLnctNsJrWWNDTN
pwPPSjHSHHfzvmSvvvFVVGqGVqGmFqrDWgDr
pPSvfPQMzCQCSbhllLnQDhbtQZ
DmLffDhpVhjjVwvbwNVFbbNSNH
JRPBgMPRHBrMHMHqrBMqWJBSQQNbCvndNrdvCNCFwFrQnv
WcqJcPGMGtWRRBtgZjjspGHTLHGHTppm
ptJtWJpqRwDZZDVWpbDWqlvvflfMjlfCMjdCCdtslv
rLwTBGBzBBQTzmwCCjvdvlLllddsMl
NBwTmrGNgrTrcgPpWgWPDSVVPW
CdglMnrlSSqDPpcsZb
ccwmVJtvVvVtNhBpBFPDVpqbbD
TRGQjJjGTmtrTCgHWLfrcn
JNNhLwWwWQHNPDmmjHpc
zMqZCvVCSMVqMSTVvZVGsBnlslpmsmzlPmsHPsPB
qTVqrgdCCbhfHJQFtg
wNwCBBCZsfQWfmLCGSmmFRGSSF
zjnPHPVqMhhZLTcbpbSncp
lVlhlgzlPZlwtgBddJdfvf
JWRWRRLWJLnjtjnLzGzznflBvfPvPMqMDqdbzblCzC
TTScTVbHmTsVFrmcsgcHFlPMMvlvrDPdlrDDqdldvl
bVpcpchgsFZHbhSmSTsHFFjwtZjnjLttntNjLjNLWtjw
rffjPJzWzrgPpGWHVNqTtmqFTVRH
cswhvlLBvSLsCtbFccmqVFNTbb
wwZSCZSnCLsSDGgDmpGnfmmr
rTfJTNtjfNljlrWSlzRtNlTqsddwGnsnHHwwhssTsnqw
VpbpZZbvPLbZbbBhwqMHhsGMnJdVwV
mgQZJDLBJbbbcbgZClCSfWlrCjRjlDCR
fSpwcVfzsztcSSWNNMbnMRqTvtTv
mJFmGDDDhGhBJHCQddllqTvCllqTRRWNnMbT
FdFDGdDDDhhHdZDjhDmpwSPVZszpwZsVgsPRZs`;
const findSharedCharacter = (a, b) => {
const left = new Set(a);
return b.split('').filter(i => left.has(i))[0];
}
const characterScore = (s) => {
const code = s.charCodeAt();
return code > 96 ? code - 96 : code - 38;
}
const res = input
.split('\n')
.map(values => {
const middlePosition = values.length / 2
const left = values.substring(0, middlePosition)
const right = values.substring(middlePosition, values.length)
return characterScore(findSharedCharacter(left, right))
})
.reduce((a, b) => a + b)
console.log(res);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment