First three days
This commit is contained in:
commit
815f61f16d
42
01/task.py
Normal file
42
01/task.py
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
|
||||||
|
|
||||||
|
TEST_INPUT = '''
|
||||||
|
1000
|
||||||
|
2000
|
||||||
|
3000
|
||||||
|
|
||||||
|
4000
|
||||||
|
|
||||||
|
5000
|
||||||
|
6000
|
||||||
|
|
||||||
|
7000
|
||||||
|
8000
|
||||||
|
9000
|
||||||
|
|
||||||
|
10000
|
||||||
|
'''
|
||||||
|
|
||||||
|
TEST_ANSWER = 45000
|
||||||
|
|
||||||
|
|
||||||
|
def sum_of_group(group):
|
||||||
|
return sum((int(x) for x in group.split('\n')))
|
||||||
|
|
||||||
|
|
||||||
|
def solution(input):
|
||||||
|
groups = input.strip().split('\n\n')
|
||||||
|
print(groups)
|
||||||
|
sums = [sum_of_group(g) for g in groups]
|
||||||
|
print(sums)
|
||||||
|
top3 = list(sorted(sums))[-3:]
|
||||||
|
print(top3)
|
||||||
|
return sum(top3)
|
||||||
|
|
||||||
|
|
||||||
|
print(solution(TEST_INPUT) == TEST_ANSWER)
|
||||||
|
|
||||||
|
|
||||||
|
with open('input', 'r') as f:
|
||||||
|
i = f.read()
|
||||||
|
print(solution(i))
|
2500
02/input-prod
Normal file
2500
02/input-prod
Normal file
File diff suppressed because it is too large
Load Diff
3
02/input-test
Normal file
3
02/input-test
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
A Y
|
||||||
|
B X
|
||||||
|
C Z
|
86
02/task.py
Normal file
86
02/task.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
|
||||||
|
# A for Rock, B for Paper, and C for Scissors
|
||||||
|
# X for Rock, Y for Paper, and Z for Scissors
|
||||||
|
|
||||||
|
# 1 for Rock, 2 for Paper, and 3 for Scissors
|
||||||
|
# 0 if you lost, 3 if the round was a draw, and 6 if you won
|
||||||
|
|
||||||
|
# X means you need to lose, Y means you need to end the round in a draw, and Z means you need to win
|
||||||
|
|
||||||
|
SHAPE_MAP = {'A': 'X', 'B': 'Y', 'C': 'Z'}
|
||||||
|
SHAPE_SCORE = {'X': 1, 'Y': 2, 'Z': 3}
|
||||||
|
WIN_OUTCOME_SCORE = ['XY', 'YZ', 'ZX']
|
||||||
|
|
||||||
|
MAP = {
|
||||||
|
'X': {
|
||||||
|
'X': 'Z',
|
||||||
|
'Y': 'X',
|
||||||
|
'Z': 'Y'
|
||||||
|
},
|
||||||
|
'Y': {
|
||||||
|
'X': 'X',
|
||||||
|
'Y': 'Y',
|
||||||
|
'Z': 'Z',
|
||||||
|
},
|
||||||
|
'Z': {
|
||||||
|
'X': 'Y',
|
||||||
|
'Y': 'Z',
|
||||||
|
'Z': 'X',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_outcome_score(x, y):
|
||||||
|
if x == y:
|
||||||
|
return 3
|
||||||
|
if (x + y) in WIN_OUTCOME_SCORE:
|
||||||
|
return 6
|
||||||
|
else:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def get_score_for_line(line):
|
||||||
|
print(line)
|
||||||
|
x, y = line.split(' ')
|
||||||
|
x = SHAPE_MAP[x]
|
||||||
|
shape_score = SHAPE_SCORE[y]
|
||||||
|
outcome_score = get_outcome_score(x, y)
|
||||||
|
print(shape_score, outcome_score)
|
||||||
|
return shape_score + outcome_score
|
||||||
|
|
||||||
|
|
||||||
|
def solution(input):
|
||||||
|
lines = input.split('\n')
|
||||||
|
return sum(get_score_for_line(l) for l in lines if l)
|
||||||
|
|
||||||
|
|
||||||
|
def get_score_for_line_2(line):
|
||||||
|
print(line)
|
||||||
|
x, y = line.split(' ')
|
||||||
|
x = SHAPE_MAP[x]
|
||||||
|
a, b = x, MAP[y][x]
|
||||||
|
print(a, b)
|
||||||
|
shape_score = SHAPE_SCORE[b]
|
||||||
|
outcome_score = get_outcome_score(a, b)
|
||||||
|
print(shape_score, outcome_score)
|
||||||
|
return shape_score + outcome_score
|
||||||
|
|
||||||
|
|
||||||
|
def solution_2(input):
|
||||||
|
lines = input.split('\n')
|
||||||
|
return sum(get_score_for_line_2(l) for l in lines if l)
|
||||||
|
|
||||||
|
|
||||||
|
# with open('input-test', 'r') as f:
|
||||||
|
# assert solution(f.read()) == 15, 'Not pass'
|
||||||
|
|
||||||
|
|
||||||
|
# with open('input-prod', 'r') as f:
|
||||||
|
# print(solution(f.read()))
|
||||||
|
|
||||||
|
|
||||||
|
with open('input-test', 'r') as f:
|
||||||
|
assert solution_2(f.read()) == 12, 'Not pass'
|
||||||
|
|
||||||
|
|
||||||
|
with open('input-prod', 'r') as f:
|
||||||
|
print(solution_2(f.read()))
|
300
03/input-prod
Normal file
300
03/input-prod
Normal file
@ -0,0 +1,300 @@
|
|||||||
|
wgqJtbJMqZVTwWPZZT
|
||||||
|
LHcTGHQhzrTzBsZFPHFZWFFs
|
||||||
|
RnLRClzGzRGLGLGCNRjTMjJfgmffSffMqNgp
|
||||||
|
WPLgsfLmLgqZvZgSRR
|
||||||
|
RbwHdbDdQFFFMvvMjbhqhZZS
|
||||||
|
lzTdldBDszfGcRsr
|
||||||
|
ZjnhJjMjnbdnbHdFLmmfFLmnCCWFFl
|
||||||
|
PpNwtRsNsZSsRwCfzQQBfQszCBsC
|
||||||
|
PpwcqqVZRtbggggjcgJJ
|
||||||
|
ntczBcVcgnHzgBHnVntcBBFhgsmmmssqWNWNWqLvNhsqTN
|
||||||
|
bSSGdSDZbGSGdDmLmGTvTGmLFFhm
|
||||||
|
PlFbDpJDPbPdPbZQZDZlSCDBfMVRwBzBtBQzfzRHVMVRtH
|
||||||
|
fDVrmmrvcmCcVpfcfGlswpPwsttMpjJMPPjjtP
|
||||||
|
RgSTdndFLbJqqPssWWjPWjPjHS
|
||||||
|
FqgzQnTqJRRQqLLhTCDhDCDmcmlvvlhcVm
|
||||||
|
nnqVtHbfVHZVmtlvmHtZtrFSFTRRFhRccTbrLsLSGr
|
||||||
|
cCNJQJPJQgjjMQdDrGGsRhTFGFRFSpMS
|
||||||
|
gzdCwWdjNPgzcJgjwdZtVlHHmvvmZlvffHnz
|
||||||
|
FFgsgwNwWvggQsMWDwvQQvQcccdcJZDtJGBtVGGGtcVlzt
|
||||||
|
rjfTrbjpjRSRTbTpzldjjHBtJGBdltJG
|
||||||
|
RbrPTfpCfmbpmnfRRCvMvQWNBwFFgMsgBL
|
||||||
|
zzLHgjjjdFHWbGBjjzcbgQRmSvqsSpmRsRSQSmRMWv
|
||||||
|
ZfJVrwPhZhZlhQQqBSQSNSqM
|
||||||
|
tnCfrDCltfPzHFFLBgngHz
|
||||||
|
DCpwrrMhwCrCMVCpGFqpVDnWWTWBtnTWvWfvbbTdFWRv
|
||||||
|
lmhhcsQPmTtTnnPBTB
|
||||||
|
QmcjNJsJzHNljZsNqDCGGhwqCqhgDDZV
|
||||||
|
hLfRnSLfhcndCCPfJJjzJfzt
|
||||||
|
pHNWwDpGGNJBZjjNNj
|
||||||
|
gmgwwHpWTpmGDmDTggqHmmDSsnnhvcqScdVVSVcjLrRcnq
|
||||||
|
CdlTJgnQJVCllNVWTPZBmPPGhGRmghPRGs
|
||||||
|
wHDrSwtHbmhRvHVZ
|
||||||
|
DzzwrtVFjLNnMTCTLCWW
|
||||||
|
SppdsnGpNVnZZZLPMlMPGq
|
||||||
|
mdcfvTTbBddLJgZJLlcFqJ
|
||||||
|
fzTvfwjjfzzCbvvjvQjWvNHVNNVWrRtdnVNppNprDp
|
||||||
|
lmlCGTmNbZlbSFlbNGfnzWfWzCdWWfVdwRCf
|
||||||
|
jDHtHHvLjQtqrsqpjBBLprRzwfwJfzzhRnczhWQVwzVR
|
||||||
|
rqpPtpPjDqpqDLtLrPGGFSFgPlNZZSGMPnMZ
|
||||||
|
pSHShqgSMzVpphFnJMFMBtssdjRJ
|
||||||
|
PZDbZfmCDgDfDNQPwCflCQNJsjRBRBFsdBWBsJRjsbsFJF
|
||||||
|
DQvCwwZrPPlffDmQCDwZQPmPhqVTcGhSHSLTpSGhLHzpGghr
|
||||||
|
gPqgqqmmmPgsqvGmsMCCnfZZfvBpWZhVrrZdHBvH
|
||||||
|
TSlcttTjRTDlDDTRhZVdrHHpWVnfVrtd
|
||||||
|
SFJzFzcJjcRJwGGqJMMCwW
|
||||||
|
gzWNLSjRLzlNqqQMLhvQccGGmcQm
|
||||||
|
fFrttPdTFTrpVwGpbdVQQp
|
||||||
|
HnTBGfHTGzWWqCqngn
|
||||||
|
SddrLdVpjjVSgRBszFswzwlV
|
||||||
|
mtPMbMqPMvqHHHDTTglBvsFshFFg
|
||||||
|
bmBHbtPctMtbMNMtbPtPqHmMjpdZdcJGrjSWWZGjJZnjndWj
|
||||||
|
nljWJHRHGrDcMBbDLZHV
|
||||||
|
wdvwmhghhbtBMcLtwZ
|
||||||
|
gvQvvghTfPSmpmQljGFRjQbFGCsJbC
|
||||||
|
BmphBWmDBBQfpVgQZpjg
|
||||||
|
rqqGrrrqlnqqHqjNnVDSSSgQQffj
|
||||||
|
FqLrbsLFsbLbLqHlMrmwwPDcCmMMmJBwDJcC
|
||||||
|
wZccfslqZPFFjrFbFfQQ
|
||||||
|
vvTvVWCJJZVBWCSvnVJJrhjQVMjVjzbgMQbjpphh
|
||||||
|
BBmNWBvZRvSqwsGwssPcmc
|
||||||
|
LGpnfcnzfzQdNFNHqHJptq
|
||||||
|
RBNNvZSBRbRCCDJqHrDZqHFZtw
|
||||||
|
SRNhRsNhWSNWsRRvgjngQnnMTnTgQjGMff
|
||||||
|
twtZmwqBHtmqnnmlGLfcfvQQ
|
||||||
|
dgMSPSMdQGclRRdF
|
||||||
|
pVMrDgThDDlPWPWbBZtZqqttBqjqjT
|
||||||
|
PPSWCGSzpCCQwNsNPFhTNVbB
|
||||||
|
vqcgJngqLLcZLvBhNTVlbsvdFF
|
||||||
|
DDmHgRjHZhHtGfWpQH
|
||||||
|
sBLbwWWBvsBsqLqStRjcGGRnggjGcntJDn
|
||||||
|
NCMQPMQPMQNzGGRRgRJRGzcG
|
||||||
|
dHQNfPCFTQfFfVVNvwwJvSWSqWqrSqdS
|
||||||
|
prDBnnDpFDprnDPBDQBvpBZttcSqSZSZcScFJSHcZJtz
|
||||||
|
VhMVdLsjdqVWJSWZZZcHst
|
||||||
|
hLVdGLfqjGjlfhCfCLjTTmrlpQBPBmvnrgDgpp
|
||||||
|
SSSTJmmgbGwtmRZHCCZRCH
|
||||||
|
FWcPQrrWqflzSWpRHZCZHRSt
|
||||||
|
PSQzzdcQTghdndDJ
|
||||||
|
cLlrNPvljRhRgTlM
|
||||||
|
VmDBGnVdmJDnDBndnnVwDRvMgRsTbTzMMsgZghzzsB
|
||||||
|
SpHvmGnSDJnwvDQqfrCPLpPLCfpF
|
||||||
|
PppbRCCgpzzQCgCSgZTlNNTWnNNDNlRnGl
|
||||||
|
hwMhLtBcBdjjNzWzlclcNGTs
|
||||||
|
FjJFHJwhfwLHMLJLwPmqfQPgVCmQgCmCzC
|
||||||
|
jTtMqFjMBqBmTntTztBTnTZBRZRLpLJgDgJNhghJrNNhhLJh
|
||||||
|
DCDdvdGsVDVsflVdQSsfSwhRJlgppgpRpbWLgJbJpgbR
|
||||||
|
wfSHSsdSVvQSwfwQPQPqHtFDcMzmtjBntqMTqn
|
||||||
|
HQhQWLCSHCSCjnjQdSJdCSQgTTmZPTVZmqnTpPtnpmRmpp
|
||||||
|
vDrzhvGzfchvlGvMFMrqVqPgZVVtZtVRgZgm
|
||||||
|
bcvMfwvDsDfbvfwDbbdhCShWCBLLJWjHsHjj
|
||||||
|
zLSsJNCjsjLCNLCgGcwBPPdwBwqwqz
|
||||||
|
WMFZprZDbrddWRVRRDvlPPBcPhhlBqqHPGPhhffg
|
||||||
|
VdbFvZWWWZZDFTLtCmNntjTnLSnn
|
||||||
|
JLVhhwRbhVwcLFJFhhJcccqwsvpRlllvpWvZSBSSSRsNWpzl
|
||||||
|
jgzfPffgZNspgZQS
|
||||||
|
fjCmDCGnfmTfFqrFnhqbFzqt
|
||||||
|
SfMRRNHSNNLfRfHcRRsqwdCCsssTqBCvgBLv
|
||||||
|
llDDWQnFGtQnmtGQDWQFsgdHVBddndHsgqTsCTsg
|
||||||
|
GzGjpWmWbmQmbpGGmGjHSrZcMfZSRPJPfcMRcb
|
||||||
|
PDdMdRTRrLDSwzJvfSvJ
|
||||||
|
FnjQnsqsFTnStvplhhzzFS
|
||||||
|
TBHHCsgVRRcMHbLR
|
||||||
|
GcLdGBJvBvLJHccJBvqHpGzDFfzwfzjwhDwrSFpfpDSn
|
||||||
|
mZZrTTQVmQmlsMPVblZQVZmfCwjzzjChzCCbDSzhFjfnSb
|
||||||
|
gZlRlZNPlmlgTTPmNRvJWcqrNLdvHWLBcHtH
|
||||||
|
jWWbBwgwWwwtvvSCtHvgWsMFmscHzTGMmcssGFTTGz
|
||||||
|
ZrLtpLnlfQJqnfJtpLnZlrqdNNGqcDNNFFTNDzzMMTMsMNMs
|
||||||
|
LJQrnZnfLZnlrZflJJRVRQbbwBgCtCVjWgjBjjgbPjBB
|
||||||
|
fqQVfRqSqmpnlLnm
|
||||||
|
jFcjMJTjhwwggjFtgzCHmCzCmGzGlzpn
|
||||||
|
wstMFFjWDfQRvmDPSB
|
||||||
|
PgTFGPgcBZPcHPFBZRjGPgwCnmwCsmSdQdThmMMMQCQS
|
||||||
|
JbpvWtvfHblWDHJDzmndSdMQnSwCdhMdQD
|
||||||
|
rfvWlLlbtfJvvLJpqWbbqZRRGPVFNHVFgZNVFBgH
|
||||||
|
TRMrrGBLMLPtbssTGtBHwZmdQQbdNzzZZNZZdwjd
|
||||||
|
CVlVhCnclvhWSFFfQrWNrjmpNfwmjZ
|
||||||
|
rlqFlclChhCvnlDvgVvRRtPtqTGJHRMBRTPPqM
|
||||||
|
gZzCrQGQdrQvZHPTHWDbTgWPJM
|
||||||
|
nSpLlcnnVjsSVLLnLSnhLSsJPTTWFsqfbPMFMqJDbfqM
|
||||||
|
VwwnpwLnlPdQCwPPCC
|
||||||
|
lRlrnlrsrMlhVsRnVhGPvCFNcPBDBvccrCGr
|
||||||
|
RZQTzWTRdDNvBDdNcC
|
||||||
|
TqjZbWRHmlMJgnmsng
|
||||||
|
scQmLfQBQQvvZfLsmmvDJwpgSNSDDdcJSSwTGD
|
||||||
|
PHlMbtzCCnlbztMRzlPNNdNwGpDpwgwptNLGpw
|
||||||
|
rRHnLbhCzbbCHnHjMbzzjzFZmfQqWZQqvmhmfVZmqFBW
|
||||||
|
fLTQWTMQtjcCGCJCbf
|
||||||
|
gGsmsVSzmjCFHJCJgg
|
||||||
|
SPRsSwSvBsPRPsqzwSVqzmhVWtLWhTDNLlTDtLTWGpNMtDLt
|
||||||
|
mbzRbchRRQzzssLdhLggLddJ
|
||||||
|
DCqDNNNWvDvjcPLsJcLLdv
|
||||||
|
cpFCVNnVBHtbfFRtMRFf
|
||||||
|
PFRcCCPtsDDDtjVspgwmgTNpTgTpspsw
|
||||||
|
BqqqdJdHdMgSfMmZpZND
|
||||||
|
vDHJGdLbLzBJdGnDdrBqVtCzWPPhthtPFzzPCFtV
|
||||||
|
HvhvHdFdvJDfHdZdpfhrmGPljPRrGPPVDGrWWC
|
||||||
|
NMMsRBMzcRRMMBSzcnbmNGrCVCWrCqPClmPqlG
|
||||||
|
zLBbwMzQnRSQMThtZFLvpdgHtJfF
|
||||||
|
DpcJcJPmMcLSHHZCfpnH
|
||||||
|
BsBFvvqTFlbhgdbBBblfZLCLzfHWfjnjLCnCrh
|
||||||
|
dTsNgqFvNgsGlZJRtVtMPmtDmG
|
||||||
|
LdGQqzPGCCjJTJdTLJQJtFcFRSctcrFNFltPFtcc
|
||||||
|
HphMMbbMdBMHbBhhgHMnhvwFFvtrlSNRNgcRllcvcc
|
||||||
|
spHMhBnHnnsmWdnsnMBMdVGGmzjzLmZLDQCCCCZjqjTD
|
||||||
|
DDZMzcTRgDMLzqCffhfWfcWnfj
|
||||||
|
NsHVVJmswwSSwNPPNjnhqhnCCnhNvjfTnv
|
||||||
|
rSSddrGSGrlMrpTpQT
|
||||||
|
bbbfCfrLHMMMWVWC
|
||||||
|
SqsvNZqQvvqcjNvqZsMMwgFgFplTHQVRFgWH
|
||||||
|
BSZWWqBZBjmPGJGLbBtf
|
||||||
|
RNCNfzfRHmzHwSdRdGfzRJPqFcFcDFGccZZqtLtGLtgl
|
||||||
|
pjhVMhvhbjvPcDJvcZqt
|
||||||
|
bsQMTsjppmSdTnHSJH
|
||||||
|
PtLwpSwdSJwQnGvvqtvMhZ
|
||||||
|
TlFcHlTjVjsDTQnCQhbZGCVVnb
|
||||||
|
cjljTslTrlzzHDNRfNgLSNBJfBwNfG
|
||||||
|
HvsZZqqqwWZswWHTmHsvvfhSfBfDffjchfBbhD
|
||||||
|
MCpnCVpQClRNnlNQVQClfDhScmjBfLhmLDGbBNbS
|
||||||
|
gmtpJpQQllJnWdZWwJWFwJJT
|
||||||
|
TzBvBwwdhgRPGHlRHh
|
||||||
|
NLWttJsrLWttppLpsGlsmVbVGRljGDRgjV
|
||||||
|
MlllnNFnnQqCdzqq
|
||||||
|
vptzrJhMMGGMptJPhJGJPvdFTFcSsTBVsczBScTSFFfn
|
||||||
|
gbRjWgRjCqjZnfHCHnTSVBHF
|
||||||
|
mRwqNbmqlbbjqRNlLbNrDJntNDGtDhNpGMrpvJ
|
||||||
|
GPWZLgWqLHHGbgbbGPPmqHqfcjjRHJJBDRBRjBBjMHjwvwQc
|
||||||
|
dhpFSpzVSSMSlDBvMQ
|
||||||
|
TndsVNztVTspnsdpshtmZLPCGGNPfgqbWWfDGb
|
||||||
|
CbqDjjCdClqgrfJvrv
|
||||||
|
NGNPtGGzzHztPWWnlgJvfBnWBFgp
|
||||||
|
hGzNHhsmGccwHPHZHcwdCCdbTVRTvSmTCjbLCb
|
||||||
|
sqnqsHGpJbqnrbshpshHmmmCWZZmWwfTjTjHmfLZ
|
||||||
|
dPggRgSDDttMFgctgdDtDcDcRWJBmjTWwmRLBLfmwBBjZWTB
|
||||||
|
PFcVPlJPglbqhhrnnlNz
|
||||||
|
wZdDNDdPPfhqwWqbsF
|
||||||
|
VTngRzpnzMLvzTCLlhvDfltqqDttqFqs
|
||||||
|
mggTVpCDDSNjBmPZrd
|
||||||
|
cSdqJSTTTJcSJpCdQbqTCPPdjdDtGzwzjDwjwwwwzD
|
||||||
|
rVvsBBVgsVBhHhfljtgbPgGtWjPtwt
|
||||||
|
fvHsVZHVnRHpSJJRmbbSLT
|
||||||
|
lDDPRRjwLGlvVRDRPlwwwPvmpSfhVWSzhqfzqpHpVpVHfqSH
|
||||||
|
qBnqBNsBBChhCSfZ
|
||||||
|
nTQbQnNNQJTLvlmTPLqqmG
|
||||||
|
TTCJhDrmDpRVhvhHfffwzwfz
|
||||||
|
dmmdmglWcqvHvWsHzB
|
||||||
|
gdQMZbtlgQlZcMSttCNmVVrLSTTJ
|
||||||
|
PLZLqhZZzZLBjjjGrrPjMH
|
||||||
|
CcQcCcfRlWDjdrMrBrHC
|
||||||
|
WlWFMcFpcRFmsWFcmflqSJzTqzwLvshggsZJwz
|
||||||
|
LgqRDDDHHGTpgpJrQrQhhhCqrwPw
|
||||||
|
ZSBWjjFshCFlQDrJ
|
||||||
|
SjWnnbWtWnsztgGDDbDTGgHHGp
|
||||||
|
llfvMlvzjzGzGRfvMSGRfSdStrCtQNCZrrFdJJLnNtLZ
|
||||||
|
shhhshPHsTTqsBHTVTwTwZZnCtQrQnJtQCCJBCCZdZ
|
||||||
|
TPHTPTHmDnljplfpGfGm
|
||||||
|
qcNTmvvSvTNrWhRrTdthzW
|
||||||
|
bDVJphpMMJwJpMHtrrttWsgwtzRW
|
||||||
|
bFpGJbllPfplVQmnhvvcSmCFqq
|
||||||
|
GTPJGMQTPQMqZjHTBmnndBVddHrrzNrz
|
||||||
|
bbcRFgDpptRbffwmzmrvLmcZvmLmLv
|
||||||
|
WCwgWbpgwtgfpfMlQGPhSPZWTZPl
|
||||||
|
DsPCswsMPBMwPDCVJPnTPPWFGJNJmbJW
|
||||||
|
RvvddfvftdtvNzghGSbFnWTntJSttGbG
|
||||||
|
LNgRddgRlgzcgCDjjjHjcBCwcM
|
||||||
|
gnVtgBnpwBgShBgcwhJJhjCMMMDmLRjDRMjrDMMMDMqMRF
|
||||||
|
slsblHPNHlbTNbsPvszHQWbzqrZLMRmFMFmdFmrtDFdMLNZD
|
||||||
|
bPzfvbfsvvlHtlzPHllHGTlTppCJpgcngcpwnwCGGJnnShwV
|
||||||
|
cgQRgtzDbHPcgHzQWpTjTLdjjNNpNLsDss
|
||||||
|
nwccZBmwcJqmJnjsTvmlTSsdlTNs
|
||||||
|
CCGFCBVrBwwGBhqVnZBrqWMMQzHfQcHzzzPtfztGfg
|
||||||
|
lhnwnhlbgbngbcfDgJLJQqDdVd
|
||||||
|
FSrvtMFZVJJJVtcq
|
||||||
|
jZNNNNjmjSPjFTJmGGzswwzHwHpBsbPblhhW
|
||||||
|
tnDWHntzDtzQBZLMLzNLDDcRFFjhJBmcFRCTjRchcRvT
|
||||||
|
sqwsPlbGfSbPGSVbJfpjjhcTFmCRjjvmTTvRdw
|
||||||
|
lJqSqPVbgGSGrVSqJqflbWZQNDMLHnrQQWNDMtQMQz
|
||||||
|
lpltwwJqsWVLPtVt
|
||||||
|
DGHsDdZQzHLSLZcFRrFS
|
||||||
|
BGsGCnHmMlMwCfwT
|
||||||
|
nrRNzRMPrrPnNwNzTSFSTNtqZdtMttvQqQmjdjvZpgjZ
|
||||||
|
GWVhGcGhHhGcffbZGDmmtttQvpdtbpppdj
|
||||||
|
HGlHBhHGJfJJhCfZzLTTNnNrTnCNwT
|
||||||
|
jBpCZStjBwWrQCMrhw
|
||||||
|
TvcHBzHdPPzdvFTzzJlvzdQfThrhhrhfQTWMQfWMqfwf
|
||||||
|
bzGJJBJcJvdvBPFzddGgjZSbZZngRZNNnnsjRs
|
||||||
|
dqPqbpPFJfsFfMcNQNNtNmzrNQJn
|
||||||
|
VVBDWvwZWDLwGlDhLGWWVcmQtSNmLmtSdSSTmrcQQm
|
||||||
|
lZlhwDCdhhHllvWvjMHbgMpgffMggpPb
|
||||||
|
SWSFLLFWDSWDNFzmmLMfGlfsdfnJMBfwMGVnBf
|
||||||
|
vPtgZcctcTQQZRRcgCtZwRfqBVGqnVTBGVnqlsdBJnqV
|
||||||
|
RcjgwbbgNSbFbhDb
|
||||||
|
JrRZLrHvjQFPLnnBPQ
|
||||||
|
DhwbtHbzpcpFTgtQ
|
||||||
|
zlDwlHlzWSwDqhMMbSJVZVvrCrCZJZNZdJ
|
||||||
|
fgNCZSDtDfDZTrTfqWghQGzGQshgpGGFQg
|
||||||
|
RFvLnvFjnVjmLQGPQWLmWh
|
||||||
|
MdwwVMFbMdRHFbccbCZJtbDJrqqJZNJZCZ
|
||||||
|
fdZVBMMdfdfBCzhTzMdMCgCrGGrpQJmSmGJGmpJQVpLmqV
|
||||||
|
RbFnhNsvlDsFHttllGmqGpPLvJpmPJSqLL
|
||||||
|
tjNsDnNwbNjttNNZTzhMWzcZcMTwMd
|
||||||
|
DjSSMShjRjPCbDFCdCSDbpBBswfNWZBZZrBVBPNfVmVf
|
||||||
|
zltLjLqqGlzQntqqGztqcgncZrVrmNfNwWBVrVmrgwrfswsW
|
||||||
|
qcTqHLlnJzGznLJtHGhMbhjFhMMpFbpbThpp
|
||||||
|
ZVFZcctFQzsCtbZFnPPHqmqpwmvPmp
|
||||||
|
NrjGfMgcLLcfdLqpmRwRRqJJmdPw
|
||||||
|
LMNDgMBGlgGDLMNDGljctVbVWZTTCWChhTttsl
|
||||||
|
RMGRRhhgzgZMtHdGTtvDwDJFCDvvwdvwqFFv
|
||||||
|
rfrrjLNmmSnSjVSmNNPPbJVbqvqsqvhvFqCq
|
||||||
|
flrpnSlrSNfjrNjSphNSWlHRGzTgtQGHQtttBTRBRQHW
|
||||||
|
tplDDprhbvprvrJDprCpbsvHRfzSzTtzmRqSTznRRBRnSfFF
|
||||||
|
MVwWjVNVQGfcMnTmRnBm
|
||||||
|
VQwGLNLjWNWPGjZbsDBppBZhhDvBlZ
|
||||||
|
RVVrGVVchRZsnzRzBWZb
|
||||||
|
FQHWWCHwQmWmlqfCHSwJnsbNJnNsvttntBtb
|
||||||
|
QQSFgqgqLMLPPdWdMVhWDT
|
||||||
|
cZrMjncTdfJpPJbr
|
||||||
|
WHNqnQwwCwvlqHtCtHNslNlvLLPDfSVdVPVDVSfVSbftffVf
|
||||||
|
NCwwwQwllwnvgsvZzgzFZzBzjGGGMM
|
||||||
|
MvHpfzcTcZzpphhbsDSTStsltqSDtS
|
||||||
|
PRmnwCrWnWQrmNMRNnlNGbqlbDltdlbDtNtD
|
||||||
|
CRJnmRVWJfgMLvcz
|
||||||
|
HPFbHrrwLdVdgbDZqcphCqSZBhLZ
|
||||||
|
tQRfRRGtvTNNSGTMjjmDCRhmqpBChqhsRDZh
|
||||||
|
vjSfMzGQNQQnMtNTTWNNjgblFdFHwgdJJHHPwddgnr
|
||||||
|
BggPRVBPPgfCBmJTjTTqpTNpZBwMbr
|
||||||
|
lclLLllsQLFlsbMqNrMwTpwpcM
|
||||||
|
SvbDzSDbWFJfWPPgdnfR
|
||||||
|
GbpSSbGDNbSSJbDZNZbDppGtMntHLHvHCTLCJMHnRCMLTT
|
||||||
|
cdwddjBfPsmPPQqQqscnHgRMtngvtjjgCCTMzM
|
||||||
|
WvwPvWvflBwdQPlNVVhbDGpFhNGhbl
|
||||||
|
WZRGmRvpCRFTZMQQQMCdddDDcD
|
||||||
|
lqgqsgvjVtbMDzzbtcDQ
|
||||||
|
NsNNgjNNjsNhnSvRmnpGRmSTSG
|
||||||
|
nTgFtDTDDLrFBStdGdcHcbvGSc
|
||||||
|
QPzfPCMzWCjfMPJhWGlRbRWRWrRRdVVH
|
||||||
|
zhCrCQCjPrpNNBsNspNnwq
|
||||||
|
zTJpqFzbTzsWsVbbfLGfSSCDNSBCHfMLHG
|
||||||
|
rZcvtmhctrvmlPPmmmrhhmBLCHDCCLLDlqMlGMNDMwDC
|
||||||
|
rRhRhnnQPZhtZcZtdttZgqFWWVjssqQpppWpFpJW
|
||||||
|
NWPhdWJPWVzVqQrqmSsPbrPP
|
||||||
|
cZDRjGsffGsCDfffgjGgRQSrTcTmSlTrbnqmSSrlln
|
||||||
|
fFGCjGCjLDLFRgfDHZvzLVWtvsWWBtzJNWMB
|
||||||
|
qMVbtnmMMTpCppsR
|
||||||
|
NffHGrWzWWgDBfTRhChCnSCWcnjT
|
||||||
|
QrlQBPBrlPHrrQlrHFLqPnLvVvbVmVVJtq
|
||||||
|
MVMpHMZLVCpMrfWjvWnfrJ
|
||||||
|
hlblzDDzwlSlGtRhRlSdrfGGWnWWfFPjJjnfqWGF
|
||||||
|
lmlhBRlDhhhDRRhwDmBpHJmsNCHmCgNHJCJLsc
|
||||||
|
jvsLgmqLgHvbPPVbNjSCjC
|
||||||
|
pwTcRpRWLRMLJJFwBBGWcFWNVlDDCSTVttNPblZZCVVDlP
|
||||||
|
GcdhccpcpRpGRhGmfsHHzLQQHrmsnh
|
||||||
|
FMmSRgtMltMnVgnmNvlrsJrsZWjspvsZJp
|
||||||
|
QbdhqwqbNqdHbTdcbcpsrpvjfWfLJLfwJrWp
|
||||||
|
DQBBQqQGccdTPGqqBNtFGRSMRSFGtnVSnnmM
|
||||||
|
fPjGrfFrrprprdrbQPZwlcZwZmlJwH
|
||||||
|
qvNnvWnvWDvSvqNtWSLWStqbcJBQwQJwQZHLBZbcmJbblb
|
||||||
|
DMtvqSvvDtntCRfwzGCgdzzFjG
|
||||||
|
TfdZgtmfDgqgvlLFFsFHvcvZ
|
||||||
|
pphWQMVjQVVBWWjRlHlHnlcLDDhcnF
|
||||||
|
JQwwWVPBwMJpJwpWwGBWNzrDzSSzfgTPqTSTTtSPgt
|
6
03/input-test
Normal file
6
03/input-test
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
vJrwpWtwJgWrhcsFMMfFFhFp
|
||||||
|
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
|
||||||
|
PmmdzqPrVvPwwTWBwg
|
||||||
|
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
|
||||||
|
ttgJtRGJQctTZtZT
|
||||||
|
CrZsJsPPZsGzwwsLwLmpwMDw
|
68
03/task.py
Normal file
68
03/task.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
from itertools import islice
|
||||||
|
|
||||||
|
def load(name):
|
||||||
|
with open(name, 'r') as f:
|
||||||
|
for line in f.readlines():
|
||||||
|
if line:
|
||||||
|
yield line.strip()
|
||||||
|
|
||||||
|
|
||||||
|
def priority(x):
|
||||||
|
letters = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
|
return letters.index(x)
|
||||||
|
|
||||||
|
|
||||||
|
def find_common_item(rucksack):
|
||||||
|
first = rucksack[:(len(rucksack) // 2)]
|
||||||
|
second = rucksack[(len(rucksack) // 2):]
|
||||||
|
intersect = set(first) & set(second)
|
||||||
|
assert len(intersect) == 1, 'Must be one letter'
|
||||||
|
return list(intersect)[0]
|
||||||
|
|
||||||
|
|
||||||
|
def solution_1(name):
|
||||||
|
return sum([
|
||||||
|
priority(find_common_item(l))
|
||||||
|
for l in load(name)
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
def batched(iterable, n):
|
||||||
|
"Batch data into lists of length n. The last batch may be shorter."
|
||||||
|
# batched('ABCDEFG', 3) --> ABC DEF G
|
||||||
|
if n < 1:
|
||||||
|
raise ValueError('n must be at least one')
|
||||||
|
it = iter(iterable)
|
||||||
|
while (batch := list(islice(it, n))):
|
||||||
|
yield batch
|
||||||
|
|
||||||
|
|
||||||
|
def find_common_item_in_group(a, b, c):
|
||||||
|
intersect = set(a) & set(b) & set(c)
|
||||||
|
assert len(intersect) == 1
|
||||||
|
return list(intersect)[0]
|
||||||
|
|
||||||
|
|
||||||
|
def solution_2(name):
|
||||||
|
return sum([
|
||||||
|
priority(find_common_item_in_group(*g))
|
||||||
|
for g
|
||||||
|
in batched(load(name), 3)
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# ASSERTS
|
||||||
|
|
||||||
|
assert priority('p') == 16
|
||||||
|
assert priority('L') == 38
|
||||||
|
|
||||||
|
assert find_common_item('vJrwpWtwJgWrhcsFMMfFFhFp') == 'p'
|
||||||
|
|
||||||
|
assert solution_1('input-test') == 157
|
||||||
|
|
||||||
|
assert solution_2('input-test') == 70
|
||||||
|
|
||||||
|
# RUN
|
||||||
|
|
||||||
|
# print(solution_1('input-prod'))
|
||||||
|
print(solution_2('input-prod'))
|
Loading…
Reference in New Issue
Block a user