Initial commit
This commit is contained in:
25
2022/day1.py
Executable file
25
2022/day1.py
Executable file
@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def main():
|
||||
with open('day1', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
list_calories = []
|
||||
current_calories = 0
|
||||
max_calories = 0
|
||||
for line in lines:
|
||||
if line == '\n':
|
||||
list_calories.append(current_calories)
|
||||
if current_calories > max_calories:
|
||||
max_calories = current_calories
|
||||
current_calories = 0
|
||||
continue
|
||||
current_calories += int(line)
|
||||
|
||||
list_calories = sorted(list_calories, reverse=True)
|
||||
top_three = sum(list_calories[:3])
|
||||
print(list_calories[0])
|
||||
print(top_three)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
88
2022/day2.py
Executable file
88
2022/day2.py
Executable file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def compute_result_one(opp, my_play):
|
||||
match opp:
|
||||
case 'A':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 3
|
||||
case 'Y':
|
||||
result = 6
|
||||
case 'Z':
|
||||
result = 0
|
||||
case 'B':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 0
|
||||
case 'Y':
|
||||
result = 3
|
||||
case 'Z':
|
||||
result = 6
|
||||
case 'C':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 6
|
||||
case 'Y':
|
||||
result = 0
|
||||
case 'Z':
|
||||
result = 3
|
||||
return result
|
||||
|
||||
|
||||
def compute_result_two(opp, my_play):
|
||||
match opp:
|
||||
case 'A':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 3
|
||||
case 'Y':
|
||||
result = 4
|
||||
case 'Z':
|
||||
result = 8
|
||||
case 'B':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 1
|
||||
case 'Y':
|
||||
result = 5
|
||||
case 'Z':
|
||||
result = 9
|
||||
case 'C':
|
||||
match my_play:
|
||||
case 'X':
|
||||
result = 2
|
||||
case 'Y':
|
||||
result = 6
|
||||
case 'Z':
|
||||
result = 7
|
||||
return result
|
||||
|
||||
|
||||
def main():
|
||||
me = {
|
||||
'X': 1, # Rock
|
||||
'Y': 2, # Paper
|
||||
'Z': 3 # Scissors
|
||||
}
|
||||
|
||||
score = 0
|
||||
with open('day2', 'r') as file:
|
||||
lines = file.readlines()
|
||||
for line in lines:
|
||||
opp, my_play = line.split()
|
||||
score += me[my_play]
|
||||
result = compute_result_one(opp, my_play)
|
||||
score += result
|
||||
print(score)
|
||||
|
||||
score = 0
|
||||
with open('day2', 'r') as file:
|
||||
lines = file.readlines()
|
||||
for line in lines:
|
||||
opp, my_play = line.split()
|
||||
result = compute_result_two(opp, my_play)
|
||||
score += result
|
||||
print(score)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
300
2022/day3
Normal file
300
2022/day3
Normal file
@ -0,0 +1,300 @@
|
||||
NGvdqJmJvpNbGRMGQgRsfgfn
|
||||
WlHTHShlLwSWjFRsncfbcwsgQc
|
||||
BHtSBHWHSCWLZHlhjTHLLdbNNqNpzpDzNvDvtPmmPp
|
||||
JJSShnTpDSJJlllfwBNVbMQWwhQhgQtt
|
||||
cTzrvrHdLwwzttQNWB
|
||||
qrFqTFvqZvrmsplsjlnDflnZ
|
||||
mhhhVHvNNddHMwBqQwlWZZtv
|
||||
fbjzjJllCtWjjrZtjq
|
||||
CbgcgpPRDJfzVHFFnSnsSDlm
|
||||
ZqBPqBQnPLmqZsFqhsvFsLZQMfSSMbbWddWbjbJSrgWgJf
|
||||
NRHnlllcDwwCNClNtttHbNJrSJNfbdWMdfbWgdrJ
|
||||
cHGlzTptHtCpncHnCpHpRGzDmvVhqLmvLPmPvLqPmzsqqmPB
|
||||
rCzVtMMbMvCmmvGlclFQFfLpJFJfJpcLHPJL
|
||||
nDGGwqGqnRTfpHLpRFpLFf
|
||||
ZNdNTDsWgNZsZBndnGrzrlMrjgrmjVGjvC
|
||||
MgFZHFTgqFFDZZDTdVdHrzQvLzCGwpCPrGLqQpzz
|
||||
JsnmbjhmffJbRNJppzPPzwzzrwdv
|
||||
lfblfthBRbBRjnjhBtBlZgdVcFSTVFDtSSWgMcdM
|
||||
hPVhVhWPCMhlDTTWdrPlTcLjfbZbFNjZBbFNBbdBFbsB
|
||||
MHSwMJpHnqJHwtqHGqGGmvqZsZFjBmsBNRBFfLbsFsZfsZ
|
||||
pqtMHHQpvqnwMpgJMCChTQhVVlclPWrCCD
|
||||
zRBBhZFwWZlBQpMZNNNJsfDpLsNsJppN
|
||||
SvggPbjvVSvvtgGVPbbnSMcCLtMrDddssJdsLdfdCD
|
||||
mTSmMgHjgmgGgqzTwZwBlBFzwB
|
||||
WLzWZHWSZPFRVSPSPM
|
||||
hmrvmGvfTCmhBGBqTfnmJFfdbQcwdMhMwRdbQMVQQcMhsQ
|
||||
JGJJnrnnCmqBTJTrNBqBLDzHFLFDNgjZlWtDNZHL
|
||||
bwbbnWwpbTwFHwRzzzmH
|
||||
ZccjZjddjPVhJmrBQHHFQRHcWF
|
||||
NVhWldsMjZZZLSnvSTGTgvMb
|
||||
ccJbHpzccZJsNpJCmHHlBTgHnlTPmF
|
||||
qvQGQfDVhhDfvVfVDSdDCbFnjmllPQjlbCmnFgjg
|
||||
hSbtWRGvhdfDVdVRfvRNpsWsZLNMZzcswLZWMM
|
||||
vlTdlBTMdtjcvLGmtb
|
||||
SSgfSsJngCSSwNFgspHFNFFpjlbGjQbbQGLthLnWtmWWhjbm
|
||||
SJsfqqgfNHwJfHgCpwzBZVMDBPMMRPTlqzBr
|
||||
VHsVhtbRHRpVHBfBCJdNfGjggGJdqLGq
|
||||
wSzSrrSMPDSDwzPjdqJjNwGdsLqGjj
|
||||
MnrnQTnWZWWzWQDMvZhtHtshhHlHBcBBsvVt
|
||||
DZbPqdTqGTZtRrzjFmZZtF
|
||||
gjQwVvBVWgfghvgmcrBNFccHFRmHtF
|
||||
QlgvWlfgVsQfdlqqjqPDbPlM
|
||||
VcfLwwcMlpnfVDrDtrtvbjMtTM
|
||||
mmgBgzSQmQdgHBFSLvvbDTJmTDvTJJDr
|
||||
RWNBHHzWNSdSdzFgSLNWWfZGwfpcwWVnnfpCCWlV
|
||||
GDZLtsJMFGLDPnbblJlNJNcJ
|
||||
BBRgSwqwqRZhTVSqjVgRwCdQcmcPmdnPPnPnmjlrbmQj
|
||||
RCqfVvhfCCShBCRfVCwztDGZMHpLWHftFptspF
|
||||
dlZqlBfBSShZhvprbCJTDrJCJjJNDh
|
||||
WGRwQwHsMVVGMsVGcRVtQWRVpNCjWNDbzbDNJnbnrCbprrNW
|
||||
HgHRRVGGwLgLBPvgSp
|
||||
QPlZSlZzVLLDwhDfBppf
|
||||
bghGGhmqrspDcfbsbs
|
||||
tTrdTgFddtnvmdgvtCTdGTTqFZjjQQPVZPSZSjlZhVVQjlRS
|
||||
BgBFHnwwSTNHqSPN
|
||||
GJmCbDdlbZGCLhsstNLsMZZZ
|
||||
JGJpCCDvmlVDVldGJBVfBBRwRjnVWWBRfN
|
||||
WTFWQgGQtTMqMCJJzDVDgCchhj
|
||||
mNPBmPlPHrWmwmNLHmShcnJjhrnzJzdcdzdjJJ
|
||||
SHssNRSmvPRmlsmLwwsmwLvpQptpQWMQbGFQFtfpFfZQ
|
||||
DgpNLVjgNjjmzGPVRmfrZrctdTcrzfwzdfMc
|
||||
bnbNqnbFNwMcMtMfwF
|
||||
svCQHHhShnbCvHChsvHlLDVhJJLRJGNpgPJPjLLD
|
||||
TmBzgTVVBgfbmTVfPmFRJcHctnHDLDDLJqqBGB
|
||||
hwvlNCCvSphMwSvrlwCCrrDcfRlJDLRtGqcqHnqRqLGR
|
||||
pMSSMMNCSwMjjWhwrrjShQNFmsPmPFWbbZzVfZsPPPZVmZ
|
||||
sTTrWGCMggpVWhSBltWp
|
||||
HNJdwLDzNcJnNLwJJPqpllqhBpqStjfwlfpj
|
||||
PJHzDzFLtLccdLggvrGGmgvFssgG
|
||||
FwCssBFRBlvbBVdQ
|
||||
jPzjDpqNGqJzZGSNHppPclFvvdfVflblbJlmFfll
|
||||
SDzDpSNqjZjjZFSrHrFZTTCMLsnTLnnnMhrLtLnn
|
||||
ScWQvvSDddGrWVrG
|
||||
fwhPFLpwTfTjrzwHdmmmGdgdsPsqdRmV
|
||||
CHlFpTpwwCjwFjwjCBnrvQBZZcBSnZtvZl
|
||||
vJvdWVNslWtJcDtDHrDf
|
||||
GCnnMZpZnSZpvDqFtftfjfZqrh
|
||||
TbGMSRCRvWbPNsWB
|
||||
NNNdsRddGNdZZTCBtqbtBgtC
|
||||
zhFHppHhzcgmzQhccjgmjhQTnvvBFtBnCBbbnTvtCCtntt
|
||||
HpjmhfSjQwfzwHmcggfzjSLfVWPDsWMsMdWdDSMsGWPPllVN
|
||||
WSvcSSwrGzFsznqPNNWqPqlllB
|
||||
djVDdHdSPRqlntjN
|
||||
LpZZgpLgLHTDHVpDSTsffvGwrcfffGwv
|
||||
wGlbWGVvGlWlrvppbFMjQjsBjCsjmCzzQzNv
|
||||
ZgfdJcfZhMNCgSBRCQRz
|
||||
hcLDZPZdqZhJPhcTHJfPHVqlqtFWMrGGrpwVGVpWrV
|
||||
dsngCgdssHDVsHdsFDvMDvmMmjTjDFTL
|
||||
qZpSqptZZGWLTLSjlLHFzl
|
||||
NZqqRpWqhQpNhqhpZRWBJQQssJbbCsdbHsCbgb
|
||||
QdGBjjbHsBsBbBdGcwwTGrCRRrFcPPTC
|
||||
ZDtvWfMDvWScSrpzPccCdr
|
||||
hhZMgffDhZNvtDgHQsQQVQmBVVHNdV
|
||||
LhQLrzVdVmqcjmTNzm
|
||||
tHMZDJDZCDDtZMWwCJjcffqqfjRmqSRqcq
|
||||
CpHpZZWWtWpWwBplZWmQbhVBVPhnPrhbLQPvvs
|
||||
FFgFSmJmSgGpZzsmgGmbDlDzMQPDNPzRQRDjQQzV
|
||||
CLwnwWBdrtthttTWBWdPnVvRVVVNMSVQPvVnnV
|
||||
BTtdLthfhTrLdftCwqrddmGFcSfpGbsmFGHpmGFHHc
|
||||
JFJnMZwQBqnJJBqZJqPqMFBlbmBHblWbrmlfbWgbvmWrgW
|
||||
spCTjtVzsNDdsNdTsjVTtNzgHfmWWgHSSrgrbSbbhHbVHS
|
||||
TfCdjjsjzLNsfTszcdqcQMnRMPPRnFRPQRFP
|
||||
VvDgDqTDtTNWTWfNFWlW
|
||||
pzPvdssRNQFQRNZF
|
||||
CCpBpsrrccGvttgGqBDG
|
||||
jmZrrjlCJqmCVFMPbFbBZPVp
|
||||
dfLLfRMGTdHbssPLLPbFwL
|
||||
QWWHHTRQdRRHRMhzWQfvddngqJqjjNgqqjlgvrtjJmtn
|
||||
sGGwJdHDDTfWbTcRzbbz
|
||||
BmjvdhNVlFBZmSZvFrWpfpcBrbzbWcbqpf
|
||||
SLmSZLhNhMhwtLswPHGssd
|
||||
mGhlPclTmhhlJRWlRTDPlJtTFMngBcLSBHHBHLHSwncFgLwB
|
||||
jQVbjprjVfzbZQrzdGnHrrBLgSGwGFLHHg
|
||||
zzZqjQjdvsRlGqThGJ
|
||||
GSPQPvVmSwpVQGVlSQmWJRcFBpnFBcBWcJcJDc
|
||||
rTTCLmhTTbZNqMNbhjfhmDzsFDWzsDnfcBWDDDzcFs
|
||||
qmjhrhCtbMCZNhZMhNTZbLjvQdHdHGgwgdtQHlllQwlQgv
|
||||
ggpCCgvjPTJWjBjWWJgCWCdVVHRZdLfZhqLdZRHZrf
|
||||
GsstmNslzzzGlMnGMnVZRZrLpZqdhZHZrZHM
|
||||
lNbDsbltmzpsmmmnnccBJTwPgWvvvTwPwFPS
|
||||
FWbTRTdWGCnThqQVBQqJ
|
||||
rrDMPrDcSrvtcJdLVhVHQMQVBQ
|
||||
rNtNwrZtDNPmZStwvcvRlGFRlzCRlpmdpplbpb
|
||||
gHrHrlFgjCrNDfCMTzwwLN
|
||||
WhvTvvWnmQvpGWNNLzwWfNzW
|
||||
vTnRZhnRRBhscBVpcBTvnsjFltPqggqHPHHjHrPcgrFg
|
||||
VzfWRVsnNzWfsvpQPvvFbdVQpQ
|
||||
SqCqqhLDTTCTTCDcSdbpPvdPFFvhMbdMvF
|
||||
BCLBDCDGLlTClCSrglrGzWmrszzmHRJmfJfJpHNz
|
||||
dwGBHGdwdcCMCBzzZJJssZFsBBgt
|
||||
NRqbRbQhLQRLrQlTggFWlZtRlTvW
|
||||
FbNDFDLqnmLmNbqbLQbhLNDpPcVHMSVMwCVHcPnVGccwjdcM
|
||||
LdHtrrrHrLZrBVbQjtPnnsVb
|
||||
TwfhhcTCTCpfJJwpTJwhDDPnbGsbFjlQnnQjFBFslsBQDl
|
||||
pwJCThfRCMMMvhchhwHSmWLZHLNHMdrdZzPg
|
||||
LbMQbHbHQLLMsWLvszvzvqCfqCCqss
|
||||
ScWlpmplWrDzlzvznJ
|
||||
RNNcZWhSZmdVdPwHbQQTTwNwjP
|
||||
jFFFtHZjwmLNmnQCFL
|
||||
sVbdsqcqHBHqrQrLPmWqQnmr
|
||||
sfGJVVzJJsczczfsczBzzvdbTMTptlTZZgDSDtGlplZSlgHt
|
||||
MgMQJdqqMDQJDggzTMgVplvffmctcCzmfjRlmmmjjR
|
||||
HrGbGswnBBtRvccBlljB
|
||||
HZPHRRGGshZHnnnwPnshnVZqMJJDdpQDVgDdVDWDpQ
|
||||
whwQRQGHRVhWRRcLLJgLmL
|
||||
jSnnzgBnpCZdCBjNmnNNJmllJTlccT
|
||||
jPSzrzpzpCjgfZZrZCFpdwQDQVVPttGDtVqQVtHqth
|
||||
mvnGFmvGhTcSCBcBpv
|
||||
bwMRzbQLwBQRWSctCcTtLpss
|
||||
JJgHZqRrbqDnmBjhDh
|
||||
MVvvGrsbGtVsgTggHjSFHJBBBg
|
||||
PPNpCpQPZppplttDNwZPBdfTFPPTSBWSFjjSTH
|
||||
CpNwChQCzDDNZwhZlpwZpqrqsGGsmmctGbbbzcmMms
|
||||
pjMbgCgdQjCgBjQQCncwcGGLDZvFtGLsZZFZtH
|
||||
zPhhrVhVVSmqVqhmzPqvDtsLLHrFWFvGFGFsvt
|
||||
SVPzVTzJNBfjDQbQTb
|
||||
CRDjjRmmLhjRFFChmHDNLZzsZNnPZNzlnnsvlv
|
||||
SSqcMwdrctQVtqTwSSgnvZnsZvnBZpcPsvlvbz
|
||||
trMGSSVdQQqdGMtwwQCmRHHhmJFhsfJGfjHh
|
||||
phJzrnJJwNNSJhSnwpwGGZzmvNfmmDvfcvcDfvbRPNcvvR
|
||||
tWtgQBqsqdLFLmZvTRTfDZcb
|
||||
ttssdgQqsHQtZFsqVdgdgdCBJGSphnljnJhjwrhnpJrrzJHl
|
||||
srzpVWrWTptbrPpPPtcWpNhNNNdfhhDgDNvfBDNNds
|
||||
jmnQHmLqlnSlGMjqnLLljRHqdNdgwHZBgfhZvBdNhDwBhhtZ
|
||||
MjSlnLmMLnCGjlSQLVWCzbrcTpPtpFbFWr
|
||||
ZnQRczHZsMSRZQcBRSZRscQwJbWFbbQwpWTjdFLJTJTWwd
|
||||
PVmGqDlGhDPVNvqDmmqtqLbbpJfFJwpbdJpdbfdjwdbl
|
||||
VGNCgGPgqVqhNvmNCNZnSsRLRsMzzgBRnHrS
|
||||
ZgMMgJMhjmZrZgggmlTTbfwTfRfbRGwlGTDf
|
||||
nPqQttNVPzSPnqpGDwDDbGfwbJ
|
||||
dJvQzzJtdSPWSthhHMjgMvrHghsv
|
||||
cMvwHCWcMnwWnScWVFzTqHpHFpVBFtFp
|
||||
bbblgRDhtlGgRPFBRqFpmzVFBTFp
|
||||
fPbtGJGhfDfDsPhQJDPbbnjjSWnwjdvQCnSSCnCSCM
|
||||
NcgDtwghTLntgNtLrjfHSSFlSbCfprlL
|
||||
ZGGMmdmVZVvsRQvMGRVVZCHPfpZSfZbFPlbPjCfH
|
||||
RVRjvRzMQQJBVmzzgWgzTWTWhNcWzN
|
||||
gsgBqdsWprWddpBghBpwwJzbLcvhCZmwZCFcJC
|
||||
PRPtStHfwmJvzPmF
|
||||
HnSHHRQDVFsVVgsgTWsG
|
||||
QRQTRrDHSLSNzzZLzZ
|
||||
dBmPwfwffWtWRtzdhhLzLzLzzLFN
|
||||
BtWnWCCVBWtCBmRPqVmqmntjjlJHJslJQVsQjsbbHrjHDQ
|
||||
TwwJrHSMnHGvWHMvvSqrrZbRrRqfqVNfbNRc
|
||||
GjhstmPFFhlFtmmjQtlgVcZVfcgqqNRNpgRcbP
|
||||
CzdCdFCtdzGWGJwWWHdW
|
||||
zfSVfSpHVpCHSZLnsttDnvDvpcsqRc
|
||||
rWzMGWFFPBFjqjDjFDFs
|
||||
PbQQWbJPrQwPrrPBwrJCVzZZLZdLSLLmfZfHJd
|
||||
gPDPLgsLNslNLHqlLqqjhjnwwjJbDjnjwTRnGD
|
||||
tzdMdMddmcRMdtcFFGWnwWjFwjFhGbTG
|
||||
mRMmttpVHNCNpNZN
|
||||
mfCFGfDDFCDWtvvstjjJ
|
||||
njnVnrggLlwVVqLpvHVpMpMsHVhhMW
|
||||
QQPPPnjlPPSgwBrnNLcdFCNNGFbmbZFcZzFf
|
||||
NzNHFNFnFrtgwwPchvGFFS
|
||||
LsjdQCVsTsLCTTdMCJtQgPPqwhPgqScPGvSZ
|
||||
jdLdVjJtCVjRCMpmpNfNNWHrNzDrNrHrmr
|
||||
NmggPPrPbPmdCbcfCNLVRRWpWTWRVTpdVVWspW
|
||||
qGhDzGqnwGQnJrjllJWttMRDFRtMVsTDTTZs
|
||||
SrnHhGQlvLmSfbfc
|
||||
DmdPCJMLlQdSjGCqjcGGccHH
|
||||
zWtBwfsgvVnBfftWtnnpTmnTRhppHpTqpc
|
||||
wzFtwZWmsVFzZtvPJSPbMFJFDJJJJd
|
||||
wrPRRSJSWrTSRzRWrqlfCLlcBfBGDqrL
|
||||
gVNQjgdVhdfqqhlDCBDs
|
||||
NmjgbtmNtjNnjbPbvRJPbpwZwZSD
|
||||
tNHGccGNthtSGmVjjVmrrVPqSB
|
||||
fgDTwRwDFmLTFlspBBqjjBgqBssB
|
||||
mLCZwZRMJMbtdWMtvd
|
||||
TPzHPPgChjsgPdPTjQvZLvnpLQnvlRQn
|
||||
GScFSzFWWrfGGMrVFMqGqmrBnplmwmnlZZlmnvvvLRnJLLvJ
|
||||
qVSVFtFtFtSzrTNNDsHhhNTHht
|
||||
NQqtqmqmNhvvclvhcljJ
|
||||
CSCfMZSgWMvfWgrbjwcMJwrrrclr
|
||||
CGSCZgSGZPRTSCWWDgGBRtnFRvqNRsLLzmsLzqpq
|
||||
tWmtCZjnWZWCGjtnnmtcwFvvlgSDTDTvVwsVgCfT
|
||||
LpLhpLdqbBMNsQPBQhpLvgFqllgfllvVvwTDTwlw
|
||||
pNQBBdLbBPpPHLmGsRWjRZJzWZHc
|
||||
WtjBSvBjWzTtzvDTjBfbbthsMNRNgCMQDgRcCcQwLRgCQgNc
|
||||
HJmqnHqHpplVnlPdqGrpGQNLCgSwLMwFwFFCgnMLRw
|
||||
SdJGpHVZmqpVVVdZVJGddsjvzzvZTsZvWTbvszWjWj
|
||||
FhRhhLZgLZhCRWZBFFWRmGbvSgHqvvbPvHTPccVncb
|
||||
wzSMpjJdwssdrdDfJJJsJSvpGVPqGpvVqTVqTnccnTvH
|
||||
rwfMMdtDjNwjzDrjDDdtChRZWSWhmCWBSmLQRW
|
||||
RWLNLWrhtrhWJmLnSStBBdVtBGVVBt
|
||||
wQqnzjCFbflqpQlQFTDDGGsGDBZBSZMsDVfG
|
||||
QvqCTwjjTqwbTqjznFzQvqjFJgmvgghJgPmgmvPNmNRJJNgN
|
||||
qLqwhztjhqqDDzjZqqjPMmFmCnVDsmgbggggTMDC
|
||||
WBhWJQrJcRmnFnWMTTCF
|
||||
lvvJSlGSvBvJQBrcpSfwwLjLPjLfhptjwNtp
|
||||
sbFjnZpPPGZLZzCRhqbJhJMCqMgS
|
||||
vtNvFHBcNwNDHffvtfQMSMJVRMBMChVqSMCBJV
|
||||
cQlvTffDlFWTlcfFTlHQNtzzGGWGdLsGWdrnzspjGdGr
|
||||
LMQtlzlMQLLrztVfVdfqDdrhrhdd
|
||||
JPJTHcvPTPTJGPZgbmvGPmcZhwRVdDBdSWfdRHSBfqBSVHqq
|
||||
sJchPZGccmcbvcmgmPcCnnnnpzppQppspFjQntMl
|
||||
qtQQtsMDqtPDGQltPHbsLFnMccRNcVLLrVNVwMVM
|
||||
LCSdzZdBZmvzZTCBfJrwnWppFcWrFpdRnWpR
|
||||
ThSgBZTLJmPHlgQHjPtq
|
||||
mrwGPrVrbjbPVmwmbdTwbGfJMDJMgsqhhDjsqjJppfqt
|
||||
SQnLnWnWHLSFCRnlQRnFhqfsDMJMppqDfcWgpDfD
|
||||
NCSvLQnRSQFBLBzdgvTbbwPrzbPZ
|
||||
FFjvvHZbHZnZpvFHZcFbgQVwgwQnJfQPVNQJGqSq
|
||||
RWmCmdClRtTzVRwVfVQPNQgN
|
||||
shwhzTsmlbhZDLbBHL
|
||||
PpPHllshHDTlsprJrsPQpltzjVzjLNggZNznLNLnhNnnjL
|
||||
qRBvSwqBdRqvmfvCRSSLjcnVcVmLgmnNZjmQVg
|
||||
vdfbSfBWffMbQqQdtprtslHJsWDGHptt
|
||||
pqQdFWlQZpGZpLpS
|
||||
wnjwJhjvVgjwvwvsgwgtsRTtssGTtLrNtrSrHS
|
||||
VDJVMGCCChjccDJDwgwVJvMBzBfzbzbDPPFBFBbffzbQqq
|
||||
gBwwBZGhcfhnFjvrQjMhrjQQ
|
||||
PPLJNdNldlNSRmzLSlpbHQvbvdMtjjbMtMtt
|
||||
lqDJmlSmlmPzqNmzmVnvnBZDgvBWgcZTfD
|
||||
HMqrwWqzWJqHzrjgGFNNtQFMFQnFBt
|
||||
LddPLdVmchPSvmcvTZlvghLLFBDNDtFGDQpRnntnFDQnFPnB
|
||||
SbSvZTSLSgqbCHJWzr
|
||||
TGcjzjgtNqjttgNNTTjmGwLhfQQfDnDLDwSQWTSCvh
|
||||
PHJRJJbBVMPRMJHbJRMPbwCQSSvfCDhVhvvwwvQLnW
|
||||
ZJPMbHbJJJsdsJplRRRZsPJztrFrqtzGrgmcrprcmFjDgN
|
||||
tlDpSbpwgbgtpddJppgJwJDtNQWGQlcGQGhlhnGGWcrcWWFr
|
||||
MTZLqzjfFLqLjRfvqsQhNPGnhGGsnchW
|
||||
LMCzjzMTTjjFRfZMBTCvRfLRDDbVVpSbSgwwwtSBSSDJgStg
|
||||
ZLVTrJmJDHFtzSTlpc
|
||||
wNhhNfhvwwvvfvPnsNPhglszqpcHcFbbFSzSzzCHzb
|
||||
NWjPwgNgRHGWvhwWPfgfGwjMDQJdQLVLJLQVVLRdBRJrZr
|
||||
CPRJCFJTqZfJlJRqssHJftCWQMnHHwMbbngMMrQMgMWwQn
|
||||
BmzVVhvvcvDdWgwVrTnrMb
|
||||
BjzvhjLLczzBjLchDLmLJtsCqFClTqsZCPtPTCjq
|
||||
DbWjNCWQCRRNsDPpFGcjjcqFqFfm
|
||||
PZdMSzSZTtZZqVmpqmmmTpgg
|
||||
ZvZMzBztzvhvddPMQlNCQDbQLBLrsRRW
|
||||
WzWFhHpWhvCpPpPLswMHswMMHLbgmH
|
||||
NNZSZTVQNrTnqDqrrwtwwLstsMGMnbntGm
|
||||
TBmQcrNqNSQVmrmQBPdpFFzhFlPzzCPF
|
||||
nBgmSrjgmjtmrbjSFGLWtLVpFVQQVGFL
|
||||
JlChvCzvqCqWffwFdFVQfPVPHPFGLV
|
||||
JzvTThZcCCMcMMwJzlbjTjmnRgRTTBnWgbBn
|
||||
rppjbbDpGnwrGprVCLLJZDzQqZzLNQqc
|
||||
htflFBFmBBlWTTgsggtZHMQLCCCcHqHMfZczHq
|
||||
gFdFTWgRhBmWWTFSGQbVnSSPnvndpv
|
||||
qFSRRGGgTgThTQhcllCWCJCctWWhfJ
|
||||
bvbdzNDMzHZNNHFHfJWWjljWNNfcnWtn
|
||||
PdbPdPBHmsdbdbPdBHBdmdmsgrTqsGQRTwSpSFrqrRSFpRwp
|
||||
pQJZZGQtChQtpWZQTTWhNtVdVWSLBrsLSVrLvrvrLdBd
|
||||
lMHnzGRgPRMSMBLcvBSS
|
||||
nglFzflzHRDGgzfzPgHRbTDQthbZbhhppNbbCqhb
|
||||
jVrvrJjpZfZCCGctwhbhMRcM
|
||||
BQQnFFTBdBndzssFsdTbRwDGTPGbcMbwtDgbcG
|
||||
HnLtQQBLtWNrVpqjJvWN
|
||||
dnVlsnJlMqnlNqJdnMRvDHBRvbBLHLpRSPPPRS
|
||||
NcGGCthFwcFwmjCTGDSfPSSHSPfPtDHfbD
|
||||
zNWNZGWNzQnWlJWVJn
|
||||
tMGSBtRtvjFcGpQrQQQQrp
|
||||
FffbJTJfPLNbTnJJmlVcQVfpQmlWVVfH
|
||||
FTdJJdhNvZhMtRSh
|
||||
pSTfMtMLSTPsPsBszP
|
||||
jdlmlFHHhVdmVHFNFRnHzHQJsGZBJbbJDvsDRPBsrGrDrJ
|
||||
VHnFjcdccjlmNVmnzmNVmCMggfqwtLLfSMwWtcWMSg
|
41
2022/day3.py
Executable file
41
2022/day3.py
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
from string import ascii_letters
|
||||
|
||||
priority = {letter:index+1 for index,letter in enumerate(ascii_letters)}
|
||||
|
||||
def main():
|
||||
with open('day3', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
priorities = 0
|
||||
for line in lines:
|
||||
length_compartments = int(len(line) / 2)
|
||||
first = line[:length_compartments]
|
||||
second = line[length_compartments:]
|
||||
|
||||
|
||||
for item in first:
|
||||
if item in second:
|
||||
priorities += priority[item]
|
||||
break
|
||||
print(priorities)
|
||||
|
||||
priorities = 0
|
||||
for index, line in enumerate(lines):
|
||||
mod_index = (index + 1) % 3
|
||||
match mod_index:
|
||||
case 1:
|
||||
first = line
|
||||
case 2:
|
||||
second = line
|
||||
case 0:
|
||||
third = line
|
||||
|
||||
for item in first:
|
||||
if (item in second) and (item in third):
|
||||
priorities += priority[item]
|
||||
break
|
||||
print(priorities)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
76
2022/day4.py
Executable file
76
2022/day4.py
Executable file
@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env python3
|
||||
def part_one(lines):
|
||||
pairs = 0
|
||||
for line in lines:
|
||||
first, second = line.split(',')
|
||||
one, two = first.split('-')
|
||||
three, four = second.split('-')
|
||||
one = int(one)
|
||||
two = int(two)
|
||||
three = int(three)
|
||||
four = int(four)
|
||||
|
||||
first_section_ids = []
|
||||
for index in range(one, two+1):
|
||||
index_space = str(index) + ' '
|
||||
first_section_ids.append(index_space)
|
||||
|
||||
first_ids = ''.join(first_section_ids)
|
||||
|
||||
second_section_ids = []
|
||||
for index in range(three, four+1):
|
||||
index_space = str(index) + ' '
|
||||
second_section_ids.append(index_space)
|
||||
|
||||
second_ids = ''.join(second_section_ids)
|
||||
|
||||
if len(first_ids) == 2 and not (one in range(three, four)):
|
||||
continue
|
||||
if len(second_ids) == 2 and not (three in range(one, two)):
|
||||
continue
|
||||
|
||||
if (first_ids in second_ids) or (second_ids in first_ids):
|
||||
pairs += 1
|
||||
|
||||
print(pairs)
|
||||
|
||||
|
||||
def part_two(lines):
|
||||
pairs = 0
|
||||
for line in lines:
|
||||
first, second = line.split(',')
|
||||
one, two = first.split('-')
|
||||
three, four = second.split('-')
|
||||
one = int(one)
|
||||
two = int(two)
|
||||
three = int(three)
|
||||
four = int(four)
|
||||
|
||||
first_section_ids = []
|
||||
for index in range(one, two+1):
|
||||
index_space = str(index) + ' '
|
||||
first_section_ids.append(index_space)
|
||||
|
||||
second_section_ids = []
|
||||
for index in range(three, four+1):
|
||||
index_space = str(index) + ' '
|
||||
second_section_ids.append(index_space)
|
||||
|
||||
for ids in first_section_ids:
|
||||
if ids in second_section_ids:
|
||||
pairs += 1
|
||||
break
|
||||
|
||||
print(pairs)
|
||||
|
||||
|
||||
def main():
|
||||
with open('day4', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
part_one(lines)
|
||||
part_two(lines)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
512
2022/day5
Normal file
512
2022/day5
Normal file
@ -0,0 +1,512 @@
|
||||
[J] [Z] [G]
|
||||
[Z] [T] [S] [P] [R]
|
||||
[R] [Q] [V] [B] [G] [J]
|
||||
[W] [W] [N] [L] [V] [W] [C]
|
||||
[F] [Q] [T] [G] [C] [T] [T] [W]
|
||||
[H] [D] [W] [W] [H] [T] [R] [M] [B]
|
||||
[T] [G] [T] [R] [B] [P] [B] [G] [G]
|
||||
[S] [S] [B] [D] [F] [L] [Z] [N] [L]
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
move 4 from 2 to 1
|
||||
move 1 from 6 to 9
|
||||
move 6 from 4 to 7
|
||||
move 1 from 2 to 5
|
||||
move 3 from 6 to 3
|
||||
move 4 from 3 to 9
|
||||
move 2 from 1 to 3
|
||||
move 6 from 7 to 5
|
||||
move 5 from 7 to 6
|
||||
move 6 from 8 to 7
|
||||
move 6 from 7 to 6
|
||||
move 1 from 8 to 3
|
||||
move 15 from 6 to 4
|
||||
move 7 from 5 to 6
|
||||
move 1 from 7 to 2
|
||||
move 2 from 5 to 3
|
||||
move 5 from 9 to 8
|
||||
move 5 from 5 to 6
|
||||
move 1 from 7 to 4
|
||||
move 5 from 6 to 5
|
||||
move 3 from 3 to 8
|
||||
move 4 from 5 to 8
|
||||
move 1 from 2 to 8
|
||||
move 7 from 1 to 2
|
||||
move 2 from 6 to 2
|
||||
move 2 from 5 to 8
|
||||
move 1 from 1 to 8
|
||||
move 8 from 2 to 6
|
||||
move 3 from 3 to 4
|
||||
move 4 from 9 to 3
|
||||
move 5 from 3 to 6
|
||||
move 5 from 6 to 8
|
||||
move 3 from 4 to 8
|
||||
move 13 from 6 to 5
|
||||
move 14 from 4 to 8
|
||||
move 1 from 2 to 6
|
||||
move 1 from 4 to 2
|
||||
move 12 from 5 to 4
|
||||
move 30 from 8 to 6
|
||||
move 1 from 8 to 9
|
||||
move 1 from 9 to 4
|
||||
move 15 from 4 to 5
|
||||
move 1 from 2 to 9
|
||||
move 1 from 4 to 2
|
||||
move 1 from 2 to 1
|
||||
move 1 from 9 to 3
|
||||
move 8 from 5 to 7
|
||||
move 2 from 5 to 6
|
||||
move 7 from 8 to 1
|
||||
move 1 from 3 to 4
|
||||
move 1 from 7 to 3
|
||||
move 1 from 4 to 6
|
||||
move 26 from 6 to 7
|
||||
move 1 from 3 to 7
|
||||
move 3 from 7 to 2
|
||||
move 1 from 1 to 9
|
||||
move 16 from 7 to 5
|
||||
move 2 from 7 to 4
|
||||
move 12 from 7 to 6
|
||||
move 1 from 1 to 9
|
||||
move 4 from 6 to 1
|
||||
move 7 from 1 to 5
|
||||
move 2 from 1 to 8
|
||||
move 1 from 7 to 2
|
||||
move 1 from 1 to 4
|
||||
move 2 from 4 to 5
|
||||
move 1 from 9 to 4
|
||||
move 3 from 6 to 9
|
||||
move 8 from 6 to 5
|
||||
move 5 from 5 to 9
|
||||
move 19 from 5 to 8
|
||||
move 1 from 9 to 8
|
||||
move 3 from 8 to 7
|
||||
move 1 from 7 to 3
|
||||
move 8 from 5 to 2
|
||||
move 2 from 4 to 2
|
||||
move 4 from 9 to 8
|
||||
move 1 from 2 to 3
|
||||
move 2 from 3 to 2
|
||||
move 4 from 9 to 5
|
||||
move 8 from 8 to 4
|
||||
move 9 from 8 to 5
|
||||
move 5 from 8 to 4
|
||||
move 5 from 5 to 7
|
||||
move 12 from 2 to 3
|
||||
move 2 from 2 to 8
|
||||
move 1 from 8 to 6
|
||||
move 1 from 8 to 7
|
||||
move 10 from 4 to 3
|
||||
move 1 from 2 to 9
|
||||
move 13 from 5 to 3
|
||||
move 1 from 7 to 5
|
||||
move 27 from 3 to 4
|
||||
move 1 from 8 to 7
|
||||
move 3 from 5 to 2
|
||||
move 6 from 6 to 3
|
||||
move 2 from 4 to 1
|
||||
move 27 from 4 to 2
|
||||
move 2 from 7 to 8
|
||||
move 23 from 2 to 4
|
||||
move 2 from 1 to 4
|
||||
move 2 from 7 to 2
|
||||
move 4 from 2 to 9
|
||||
move 10 from 3 to 4
|
||||
move 1 from 3 to 5
|
||||
move 1 from 5 to 1
|
||||
move 5 from 2 to 5
|
||||
move 30 from 4 to 2
|
||||
move 1 from 8 to 9
|
||||
move 1 from 8 to 1
|
||||
move 27 from 2 to 3
|
||||
move 2 from 4 to 2
|
||||
move 1 from 9 to 4
|
||||
move 2 from 1 to 3
|
||||
move 8 from 3 to 7
|
||||
move 19 from 3 to 1
|
||||
move 1 from 4 to 7
|
||||
move 5 from 9 to 1
|
||||
move 4 from 2 to 9
|
||||
move 4 from 3 to 4
|
||||
move 1 from 3 to 5
|
||||
move 1 from 2 to 7
|
||||
move 1 from 9 to 3
|
||||
move 1 from 9 to 1
|
||||
move 5 from 5 to 4
|
||||
move 5 from 7 to 3
|
||||
move 1 from 5 to 6
|
||||
move 23 from 1 to 6
|
||||
move 1 from 9 to 2
|
||||
move 1 from 2 to 5
|
||||
move 24 from 6 to 9
|
||||
move 6 from 4 to 7
|
||||
move 4 from 4 to 8
|
||||
move 1 from 4 to 9
|
||||
move 4 from 7 to 4
|
||||
move 4 from 3 to 4
|
||||
move 4 from 9 to 8
|
||||
move 6 from 7 to 9
|
||||
move 4 from 7 to 6
|
||||
move 1 from 1 to 4
|
||||
move 2 from 6 to 4
|
||||
move 1 from 6 to 2
|
||||
move 1 from 1 to 8
|
||||
move 1 from 7 to 3
|
||||
move 1 from 6 to 9
|
||||
move 13 from 4 to 2
|
||||
move 3 from 3 to 2
|
||||
move 15 from 9 to 8
|
||||
move 1 from 5 to 9
|
||||
move 5 from 9 to 1
|
||||
move 4 from 1 to 7
|
||||
move 4 from 7 to 3
|
||||
move 8 from 2 to 7
|
||||
move 9 from 8 to 2
|
||||
move 1 from 1 to 2
|
||||
move 7 from 9 to 2
|
||||
move 4 from 3 to 1
|
||||
move 4 from 1 to 4
|
||||
move 2 from 9 to 1
|
||||
move 20 from 2 to 8
|
||||
move 3 from 4 to 8
|
||||
move 1 from 2 to 3
|
||||
move 4 from 2 to 7
|
||||
move 1 from 3 to 4
|
||||
move 1 from 9 to 3
|
||||
move 1 from 4 to 7
|
||||
move 1 from 2 to 5
|
||||
move 1 from 4 to 3
|
||||
move 2 from 1 to 6
|
||||
move 1 from 5 to 6
|
||||
move 1 from 7 to 1
|
||||
move 12 from 7 to 2
|
||||
move 12 from 2 to 6
|
||||
move 9 from 6 to 2
|
||||
move 1 from 6 to 8
|
||||
move 1 from 3 to 9
|
||||
move 8 from 2 to 4
|
||||
move 1 from 9 to 6
|
||||
move 1 from 4 to 6
|
||||
move 4 from 4 to 9
|
||||
move 1 from 4 to 9
|
||||
move 1 from 1 to 5
|
||||
move 2 from 6 to 3
|
||||
move 1 from 5 to 4
|
||||
move 1 from 2 to 8
|
||||
move 10 from 8 to 6
|
||||
move 10 from 8 to 3
|
||||
move 1 from 3 to 4
|
||||
move 8 from 8 to 1
|
||||
move 3 from 9 to 8
|
||||
move 2 from 9 to 1
|
||||
move 11 from 6 to 7
|
||||
move 1 from 1 to 7
|
||||
move 8 from 1 to 4
|
||||
move 3 from 6 to 7
|
||||
move 1 from 1 to 4
|
||||
move 14 from 8 to 6
|
||||
move 1 from 8 to 7
|
||||
move 1 from 6 to 8
|
||||
move 6 from 4 to 1
|
||||
move 1 from 8 to 5
|
||||
move 4 from 1 to 8
|
||||
move 2 from 7 to 1
|
||||
move 1 from 6 to 7
|
||||
move 5 from 4 to 2
|
||||
move 2 from 4 to 3
|
||||
move 4 from 2 to 8
|
||||
move 15 from 7 to 3
|
||||
move 3 from 3 to 6
|
||||
move 1 from 5 to 2
|
||||
move 21 from 3 to 6
|
||||
move 2 from 8 to 7
|
||||
move 1 from 7 to 8
|
||||
move 32 from 6 to 9
|
||||
move 1 from 7 to 8
|
||||
move 5 from 8 to 4
|
||||
move 2 from 8 to 7
|
||||
move 14 from 9 to 8
|
||||
move 14 from 8 to 1
|
||||
move 2 from 6 to 1
|
||||
move 2 from 7 to 4
|
||||
move 1 from 9 to 3
|
||||
move 17 from 9 to 5
|
||||
move 6 from 1 to 8
|
||||
move 4 from 4 to 6
|
||||
move 2 from 2 to 5
|
||||
move 2 from 8 to 2
|
||||
move 1 from 6 to 7
|
||||
move 2 from 2 to 6
|
||||
move 4 from 3 to 2
|
||||
move 7 from 6 to 3
|
||||
move 6 from 5 to 7
|
||||
move 1 from 8 to 9
|
||||
move 1 from 6 to 7
|
||||
move 4 from 8 to 6
|
||||
move 1 from 9 to 3
|
||||
move 4 from 1 to 4
|
||||
move 12 from 5 to 9
|
||||
move 7 from 7 to 8
|
||||
move 3 from 4 to 2
|
||||
move 8 from 9 to 4
|
||||
move 2 from 6 to 2
|
||||
move 1 from 7 to 4
|
||||
move 2 from 6 to 9
|
||||
move 1 from 5 to 3
|
||||
move 1 from 8 to 1
|
||||
move 2 from 8 to 7
|
||||
move 2 from 2 to 9
|
||||
move 7 from 2 to 3
|
||||
move 8 from 4 to 1
|
||||
move 2 from 8 to 4
|
||||
move 4 from 9 to 7
|
||||
move 2 from 9 to 5
|
||||
move 16 from 1 to 3
|
||||
move 3 from 7 to 4
|
||||
move 1 from 7 to 6
|
||||
move 1 from 6 to 2
|
||||
move 2 from 5 to 3
|
||||
move 10 from 4 to 2
|
||||
move 2 from 8 to 7
|
||||
move 19 from 3 to 8
|
||||
move 17 from 3 to 9
|
||||
move 3 from 1 to 7
|
||||
move 17 from 9 to 2
|
||||
move 1 from 7 to 5
|
||||
move 1 from 7 to 5
|
||||
move 2 from 5 to 7
|
||||
move 2 from 9 to 2
|
||||
move 6 from 7 to 6
|
||||
move 3 from 6 to 7
|
||||
move 1 from 8 to 9
|
||||
move 1 from 9 to 3
|
||||
move 4 from 2 to 5
|
||||
move 17 from 2 to 3
|
||||
move 3 from 7 to 5
|
||||
move 1 from 5 to 3
|
||||
move 7 from 2 to 3
|
||||
move 2 from 2 to 4
|
||||
move 1 from 7 to 1
|
||||
move 1 from 1 to 5
|
||||
move 2 from 5 to 3
|
||||
move 1 from 4 to 5
|
||||
move 1 from 4 to 3
|
||||
move 14 from 3 to 5
|
||||
move 17 from 8 to 7
|
||||
move 2 from 6 to 2
|
||||
move 12 from 3 to 5
|
||||
move 15 from 5 to 9
|
||||
move 7 from 7 to 3
|
||||
move 7 from 7 to 6
|
||||
move 1 from 2 to 3
|
||||
move 11 from 9 to 6
|
||||
move 13 from 5 to 7
|
||||
move 10 from 6 to 8
|
||||
move 6 from 8 to 3
|
||||
move 2 from 5 to 8
|
||||
move 1 from 2 to 9
|
||||
move 10 from 7 to 6
|
||||
move 9 from 6 to 8
|
||||
move 1 from 5 to 1
|
||||
move 10 from 6 to 4
|
||||
move 8 from 4 to 5
|
||||
move 1 from 1 to 2
|
||||
move 3 from 9 to 1
|
||||
move 10 from 3 to 7
|
||||
move 1 from 4 to 7
|
||||
move 12 from 7 to 9
|
||||
move 7 from 3 to 5
|
||||
move 13 from 8 to 7
|
||||
move 3 from 9 to 5
|
||||
move 5 from 5 to 6
|
||||
move 3 from 1 to 9
|
||||
move 5 from 9 to 6
|
||||
move 10 from 6 to 4
|
||||
move 15 from 7 to 5
|
||||
move 3 from 9 to 4
|
||||
move 1 from 4 to 3
|
||||
move 3 from 8 to 9
|
||||
move 6 from 9 to 6
|
||||
move 2 from 5 to 1
|
||||
move 1 from 2 to 7
|
||||
move 12 from 5 to 8
|
||||
move 3 from 9 to 5
|
||||
move 11 from 5 to 6
|
||||
move 1 from 1 to 2
|
||||
move 1 from 2 to 8
|
||||
move 3 from 7 to 8
|
||||
move 10 from 8 to 3
|
||||
move 1 from 1 to 7
|
||||
move 10 from 4 to 9
|
||||
move 1 from 7 to 8
|
||||
move 5 from 5 to 3
|
||||
move 15 from 6 to 5
|
||||
move 8 from 3 to 9
|
||||
move 3 from 4 to 5
|
||||
move 1 from 7 to 8
|
||||
move 8 from 8 to 9
|
||||
move 1 from 6 to 5
|
||||
move 5 from 3 to 2
|
||||
move 5 from 2 to 3
|
||||
move 5 from 9 to 8
|
||||
move 1 from 6 to 8
|
||||
move 2 from 5 to 1
|
||||
move 4 from 3 to 2
|
||||
move 16 from 5 to 6
|
||||
move 3 from 5 to 9
|
||||
move 4 from 8 to 5
|
||||
move 8 from 6 to 4
|
||||
move 4 from 2 to 3
|
||||
move 1 from 1 to 4
|
||||
move 6 from 3 to 6
|
||||
move 24 from 9 to 2
|
||||
move 1 from 1 to 9
|
||||
move 1 from 9 to 4
|
||||
move 2 from 4 to 5
|
||||
move 1 from 3 to 2
|
||||
move 10 from 6 to 8
|
||||
move 22 from 2 to 6
|
||||
move 1 from 2 to 7
|
||||
move 1 from 7 to 5
|
||||
move 10 from 8 to 9
|
||||
move 7 from 9 to 3
|
||||
move 6 from 4 to 8
|
||||
move 3 from 9 to 2
|
||||
move 5 from 8 to 3
|
||||
move 1 from 4 to 1
|
||||
move 1 from 8 to 3
|
||||
move 3 from 6 to 2
|
||||
move 5 from 5 to 1
|
||||
move 1 from 5 to 3
|
||||
move 5 from 6 to 3
|
||||
move 1 from 2 to 7
|
||||
move 16 from 3 to 2
|
||||
move 1 from 8 to 1
|
||||
move 1 from 4 to 7
|
||||
move 1 from 5 to 3
|
||||
move 6 from 6 to 4
|
||||
move 14 from 2 to 8
|
||||
move 3 from 3 to 5
|
||||
move 2 from 3 to 6
|
||||
move 3 from 5 to 6
|
||||
move 4 from 6 to 4
|
||||
move 3 from 4 to 8
|
||||
move 7 from 2 to 9
|
||||
move 2 from 2 to 1
|
||||
move 9 from 8 to 4
|
||||
move 7 from 1 to 7
|
||||
move 8 from 7 to 5
|
||||
move 2 from 8 to 4
|
||||
move 3 from 9 to 6
|
||||
move 4 from 4 to 6
|
||||
move 1 from 7 to 3
|
||||
move 4 from 8 to 2
|
||||
move 2 from 9 to 8
|
||||
move 9 from 6 to 7
|
||||
move 1 from 9 to 8
|
||||
move 1 from 1 to 5
|
||||
move 3 from 4 to 5
|
||||
move 1 from 3 to 2
|
||||
move 5 from 8 to 2
|
||||
move 9 from 2 to 7
|
||||
move 1 from 6 to 7
|
||||
move 1 from 6 to 2
|
||||
move 9 from 7 to 4
|
||||
move 2 from 5 to 9
|
||||
move 10 from 4 to 6
|
||||
move 1 from 8 to 6
|
||||
move 5 from 4 to 3
|
||||
move 5 from 4 to 9
|
||||
move 5 from 9 to 5
|
||||
move 1 from 1 to 7
|
||||
move 4 from 7 to 8
|
||||
move 8 from 5 to 3
|
||||
move 3 from 3 to 8
|
||||
move 6 from 7 to 6
|
||||
move 3 from 3 to 1
|
||||
move 5 from 3 to 7
|
||||
move 1 from 9 to 6
|
||||
move 2 from 7 to 6
|
||||
move 1 from 9 to 3
|
||||
move 4 from 6 to 9
|
||||
move 2 from 2 to 6
|
||||
move 1 from 7 to 3
|
||||
move 6 from 5 to 4
|
||||
move 7 from 6 to 9
|
||||
move 6 from 6 to 8
|
||||
move 2 from 1 to 2
|
||||
move 1 from 5 to 1
|
||||
move 5 from 8 to 5
|
||||
move 1 from 3 to 9
|
||||
move 4 from 4 to 5
|
||||
move 10 from 9 to 2
|
||||
move 14 from 6 to 4
|
||||
move 1 from 3 to 8
|
||||
move 1 from 8 to 5
|
||||
move 2 from 7 to 9
|
||||
move 1 from 1 to 2
|
||||
move 14 from 4 to 7
|
||||
move 1 from 1 to 4
|
||||
move 3 from 4 to 1
|
||||
move 3 from 5 to 1
|
||||
move 6 from 5 to 1
|
||||
move 10 from 7 to 3
|
||||
move 6 from 1 to 5
|
||||
move 6 from 1 to 7
|
||||
move 3 from 8 to 3
|
||||
move 1 from 5 to 1
|
||||
move 3 from 9 to 6
|
||||
move 1 from 9 to 3
|
||||
move 6 from 5 to 9
|
||||
move 2 from 6 to 1
|
||||
move 9 from 2 to 1
|
||||
move 6 from 9 to 6
|
||||
move 2 from 8 to 7
|
||||
move 5 from 7 to 3
|
||||
move 7 from 7 to 5
|
||||
move 4 from 2 to 8
|
||||
move 6 from 8 to 3
|
||||
move 1 from 9 to 4
|
||||
move 1 from 7 to 3
|
||||
move 2 from 5 to 3
|
||||
move 7 from 6 to 4
|
||||
move 28 from 3 to 4
|
||||
move 1 from 3 to 8
|
||||
move 1 from 5 to 9
|
||||
move 9 from 4 to 5
|
||||
move 12 from 4 to 5
|
||||
move 2 from 4 to 6
|
||||
move 5 from 4 to 6
|
||||
move 1 from 3 to 8
|
||||
move 10 from 5 to 8
|
||||
move 10 from 5 to 4
|
||||
move 5 from 5 to 9
|
||||
move 3 from 4 to 1
|
||||
move 5 from 6 to 9
|
||||
move 2 from 6 to 7
|
||||
move 2 from 7 to 5
|
||||
move 10 from 9 to 4
|
||||
move 1 from 8 to 5
|
||||
move 5 from 1 to 5
|
||||
move 8 from 8 to 7
|
||||
move 8 from 5 to 3
|
||||
move 8 from 7 to 8
|
||||
move 2 from 8 to 2
|
||||
move 7 from 3 to 2
|
||||
move 21 from 4 to 7
|
||||
move 10 from 1 to 9
|
||||
move 3 from 4 to 5
|
||||
move 1 from 4 to 8
|
||||
move 1 from 8 to 3
|
||||
move 7 from 8 to 5
|
||||
move 2 from 3 to 1
|
||||
move 7 from 7 to 2
|
||||
move 1 from 1 to 4
|
||||
move 1 from 1 to 6
|
||||
move 8 from 9 to 3
|
||||
move 2 from 8 to 4
|
||||
move 3 from 3 to 1
|
||||
move 3 from 4 to 7
|
||||
move 1 from 6 to 7
|
||||
move 5 from 2 to 4
|
||||
move 2 from 1 to 6
|
88
2022/day5.py
Executable file
88
2022/day5.py
Executable file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def parse_stacks(stacks, line):
|
||||
for box in range(9):
|
||||
contents = line[box*4+1]
|
||||
if contents != ' ':
|
||||
match box:
|
||||
case 0:
|
||||
stacks[0].append(contents)
|
||||
case 1:
|
||||
stacks[1].append(contents)
|
||||
case 2:
|
||||
stacks[2].append(contents)
|
||||
case 3:
|
||||
stacks[3].append(contents)
|
||||
case 4:
|
||||
stacks[4].append(contents)
|
||||
case 5:
|
||||
stacks[5].append(contents)
|
||||
case 6:
|
||||
stacks[6].append(contents)
|
||||
case 7:
|
||||
stacks[7].append(contents)
|
||||
case 8:
|
||||
stacks[8].append(contents)
|
||||
|
||||
|
||||
def parse_line(line):
|
||||
line = line.strip().split()
|
||||
count = int(line[1])
|
||||
from_stack = int(line[3]) - 1
|
||||
to_stack = int(line[5]) - 1
|
||||
return count, from_stack, to_stack
|
||||
|
||||
|
||||
def move_single(stacks, line):
|
||||
count, from_stack, to_stack = parse_line(line)
|
||||
|
||||
for _ in range(count):
|
||||
stacks[to_stack].append(stacks[from_stack].pop())
|
||||
|
||||
|
||||
def move_multiple(stacks, line):
|
||||
count, from_stack, to_stack = parse_line(line)
|
||||
count = int(count)
|
||||
|
||||
temp_stack = stacks[from_stack][-count:]
|
||||
for _ in range(count):
|
||||
stacks[from_stack].pop()
|
||||
stacks[to_stack].extend(temp_stack)
|
||||
|
||||
|
||||
def create_and_parse_stacks():
|
||||
stacks = [[] for _ in range(9)]
|
||||
|
||||
with open('day5', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
for line in lines[7::-1]:
|
||||
parse_stacks(stacks, line[:-1])
|
||||
|
||||
return stacks, lines[10:]
|
||||
|
||||
|
||||
def print_stacks(stacks):
|
||||
for stack in stacks:
|
||||
print(stack[-1], end='')
|
||||
print()
|
||||
|
||||
|
||||
def main():
|
||||
stacks, lines = create_and_parse_stacks()
|
||||
|
||||
for line in lines:
|
||||
move_single(stacks, line)
|
||||
|
||||
print_stacks(stacks)
|
||||
|
||||
stacks, lines = create_and_parse_stacks()
|
||||
|
||||
for line in lines:
|
||||
move_multiple(stacks, line)
|
||||
|
||||
print_stacks(stacks)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
1
2022/day6
Normal file
1
2022/day6
Normal file
@ -0,0 +1 @@
|
||||
rvnvzvhzzjgjgffclllnhhtltptgptgpttjhttsllmbbphbpbzpbpjjcwjwqwccnrrtvrtrfrwffnqffsggwzzhtzhthqhffmrrzsrrnrtrqqbllhrlrjrvvrvvgdgjgfjjtzznffrfvfggswgssccpcwpccstcsstwssgzssswsgwsgsnsshcsscsffcwcmmhmsmrsrddwhhszsfsjfsfccwssvdssmzzwrzzjfzzvzzfsfsvshschhvlhhvmvpvhhstsdtstgtrrtjjcssgfssnsnfsnscnsslvvqbbhthqtqzqmzmjjfmmbdmmzdmdpmpnnfjnnrwnwbwrrwjrrttfzzlwwfmmnhhqlhqqbnqnqznncmmhfmfftsfszssftstggppfddtztltctqcqjcqcmclcnccdgcggvmvvcsstztbzttsccmgcghcczfzszbzmbmjjggsqgghbhjjhhrrjljmllczlzzqssjfjqfjfmfdfgffczfzwwpfwpwbbftbffplphhfcftctlcclhlnlhnhlhnhqnhhjbjmmtpmmlsmllvhhjghhmzzwpzprrjrzzvrvcvqvssgssnccmgmppfhfwhhczhhprhrffpvvqrqvqccdhdvvvssvdvwdwwzggfvfnvvqvwwzwmzzvttgzzwjjfvvpvffqpqhqrrwccjbjppbzbrbrrphrhgrhhzbbhrrblbjjznnlccsffpcfpcfpfddfwddbffczztzsttzsstddrqdqqchqccrlccfcwwghwhnhbhjbhhzrrgprrftrffqlljlslggzdzvvrgvgcgnnngtnggdcgddhjhchqcqfqwfwjffqppblbddgmdgmddrnddjtdjttgzgpzggwvwjvwwhdwwbvvtftcfttpftpfpzfznnchnhrrdtdbtdbdppsjsgsttptsptssnwntwnnsshqqgnnqnddhjjtqqjhhmghmhmsstrrhmmwvvlssprsrbbswsddbnntmtbmtbmmtmrrffvjffdrffnttbffbccgchghjgjwwshwswdswdsdsrdsdjdvjjgbjbssptpddzbdddqdpdspswssjrjwwcbbvsspnspslpplzlqlccvlvfllntlntnqnrqnqpqlqflfrfsfgsfswwptwwgqggrhghzghhrthtzhzsswhhzffpsffhnnrvnrvvhmmlvvqsslddhcddsllpmpggrhrcrbbmnmjmqmlmpmrrqwqhqrqhrrgrqqsrrpjpdjppzhphthddlzdzhddjvdjdcjcncnvnzzvwzvzgzjggcllvpllgdgqqdvvwnvwvwqqvwvvrbbtqqwhdztqfzzcqrshjzwqnpdsshmpjzwqdptbvfqzmfnbtlgbbsjbqgnblhbbpsfdzvcmpzfwczcnbdndsjzccjcqnrdglwfrvwtnjwpvpvvgwtmnpzhbwnbqwznmdvdrsjnlsfrpcnhlbmlgmrcjbbvhqnvbrmlnfttjllstqnqqnhqrzrhfqjbfbwfhhjzwtwzjmszzhjnjbhrlbnnpfvdmlftjnfsfnvddqfhqqlljrthptvmhbqrdmdcmljwgbrqrjwcrtmvjgqtblnslgbjmdsrrpgfsctrhwlwnszpljhrfnsfpcsgczzltgsztclhgcqljrcmbbpdlztncnrnrmgrttplcnldfqddqhznmcczbmwvsztmwmcqnrzmlmqchnhnhrrhhfntjzqcbnttspptqwvphlbtpfcbhdqzbhsbvhmsqbsdntwpcrnzvmbgqsgttbqhhblfjpmvfcrzhfnzwrzbzgsdfqndzzhfdnrvsnvfbptthjnhgljhrvwwrlbnfpvvjdjchcgbhfrqvszhrhqvtzplwsptvdhqwlzhcjpclmmrlccvgvtgsfpnjhqhrbqglznpdhmsqwwsbmhmlsmmvvghsmplqjchrfctltmnqnddzqjfpljwljbdqjcqdqzwsbcclqsmsmlstvljwwtfmpnhqzqfjghjfchjccqrchsvngvrnwfwttsnvrdlfvwfptsjcpslvvpmjclfcpljqjszptsgsmntzrdjbgrzmgvzddqrlsndjzzqbznqnphbnwfhtjjlwjpsvffrdrbsbttpgrvmqrdndqvlgzcpfbttvqdgvrmtvfclcbcwllthmdzjcflwpnrsqzrjdzbvqgzsqvjjpjjpnjtcjqhcfbjdqndlcwzhcbjtgtlvtdwctdnqcbcgsmrcrmwjntdwbjdbzmshbvlspjfdbvmlrbdzlmlggthvphnrqlrcdsqpsgqcmpgmgdzvdqlmcldvztpsbmpwjgjfhswplwrvwpbwbsgsvlhdvmpzwnnbwjwmshwcnqfqjdpchfjjcbdnslqchhnznpqpnnctznbtccclgjhmnngdjlmqnzpsdptqqcrblmrlnnpgvrfrtmbjnmspfrbwpclhgtbsghndrjfbggsplvcjnhjjbqzsfdpfnvchzjgbhdqgddfgddvzdcrjlntnsmscqwmpptqgbnvtsvpjvmhcfpbfrpzqbpfhlbjrmbmvdvvnvfqsndglvhfrqcsbsbbprscrbfthzcwcdrprqrwjzwrpblfllpwzlhmqvltjgpcjzpzwbltgwsrgrrhzcqfpvhcprdhnzcfphqrwcvtpcbppjwzmmwjhbvwbblnbwvcqzvlfzjhgmlnhlhrbsplfctggfbhbgwpncznvtmdtqqmjsvsnrlqswzvflrfsncgpdcndlwrfrqwqnqtjmsphwsgzhdjpnsdgrbrfhbfdrntwvgvbwnvwnrmdbhqgrglbfwprflnrljrwsgwtpgtmfhvvghtzndvwlzjchhmlwcncmpvrslrglzjcnhfdqhcrljhgbzpssvdnmfwzstmvrztgpsscfswltnbwrrtcnvbswmmjbmnnnvqwjzhprfnvlbvzzdvbwlwchrvqnwwpbnttbhfdvjjvzsznhczjcncmcrmwtrlsvbwpsrcwqdvgcfjsbqnwmjmtcgpnmcbfbcqhzrjbtlpvwzhjqqprbdnbgzfwlprlcspwjwnfftldqzbcgqnjtglvbpqffdvjbpslqcdzwdnmncvcwfshdhsmssttqfrsbnjgmhfqzlgrbpdfqtfdwslsgphfzzgbzjssfbgnwztzmczplqwjmhtlflpvqqqmrvlllhngtfgsvbbnvhzqbcgpmnlsmpwqwgqfjpzplzjhrslwzrsrgjgpppjlnhrnggcdzvspsztnschnqftgffbtvrpzndzpqmtsfmwgnrvpmtgpvnmqfmwgcvlznwqnjnjwpgnqfjwtdhhmztlvlcvrlzmlpmjdvdnzwbfsshfsvbbhqsmphjhqtlnvlsmvwlqvfqpnjnzlgmdvwzzrllmcgwtqdwphhbwmlrqhqrfmdvtqswvsllqvwmfbbpllsbjbvgsmrcgqvfgsnszfrdlcjbtfgcbclhmzlmqlnhmslcmgrcvjjlbpsjjcznzqwmztcgdgbmrlgwzjzzjrpndfrdzztzzgmsrcnwrvqrdcczrbhdpfjwvqsmbrcvllvjrrbrsqnzldltdgzscjrssvdhzhnvltpgfdfcvfbtqmphdzhpzgjhjbwsmdlbqqgcrhjrwhgvfgdllmmlnpsbtvdrrzmltfwgrcsfrrsdbdmjtrwhnlgcrgjgmbzvzvqbflvbrsqcssjgsvpjmlhtcggzwbvddmwwtfdrlltjqcpwnthczzlzdszvtmrmhbpcgstvrsnmbdcmjzsvnncmgmlnrzzhfvmblgptwwwbrmtcczjwcqmvdrsvfjgqqvghnhbntqcdrppfmvdzbcjvztrnpdhmdpmnvsnzzldvdfqbdrwqqqqsmswthwpjwdrflszbspqhpfwztjjcbdsrftdsrsfdltnfztcslmbsghgrtcscrfmptqplwpmtqdzthgfjhbqdnsffrpjmgczmrlfvzcjttwtmtqfbtlqrttvjdwhfgcgcclrlswmzhzbfhjrggnhwtnffnqqcvldlttvvgrbcqbmqzvtflfmdblhdbzphrqtbshvp
|
30
2022/day6.py
Executable file
30
2022/day6.py
Executable file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def find_signal(line):
|
||||
letters = [line[x] for x in range(4)]
|
||||
for index, letter in enumerate(line[4:]):
|
||||
if len(set(letters)) == 4:
|
||||
return(index + 4)
|
||||
letters[index % 4] = letter
|
||||
|
||||
|
||||
def find_signal_two(line):
|
||||
letters = [line[x] for x in range(14)]
|
||||
for index, letter in enumerate(line[14:]):
|
||||
if len(set(letters)) == 14:
|
||||
return(index + 14)
|
||||
letters[index % 14] = letter
|
||||
|
||||
|
||||
def main():
|
||||
with open('day6', 'r') as file:
|
||||
line = file.readlines()
|
||||
|
||||
line = line[0].strip()
|
||||
|
||||
print(find_signal(line))
|
||||
print(find_signal_two(line))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
125
2022/day7.py
Executable file
125
2022/day7.py
Executable file
@ -0,0 +1,125 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
class File:
|
||||
def __init__(self, name, size):
|
||||
self.name = name
|
||||
self.size = size
|
||||
|
||||
|
||||
class Directory:
|
||||
def __init__(self, name, parent):
|
||||
self.parent = parent
|
||||
self.name = name
|
||||
self.directories = []
|
||||
self.files = []
|
||||
|
||||
def addFile(self, file):
|
||||
self.files.append(file)
|
||||
|
||||
def addDirectory(self, directory):
|
||||
self.directories.append(directory)
|
||||
|
||||
def getSize(self):
|
||||
self.size = 0
|
||||
for file in self.files:
|
||||
self.size += int(file.size)
|
||||
for directory in self.directories:
|
||||
self.size += int(directory.getSize())
|
||||
return self.size
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class FileSystem:
|
||||
def __init__(self):
|
||||
self.root = Directory('/', '')
|
||||
self.root.parent = self.root
|
||||
self.current_directory = self.root
|
||||
self.all_directories = []
|
||||
|
||||
def addFile(self, file):
|
||||
self.root.files.append(file)
|
||||
|
||||
def addDirectory(self, directory):
|
||||
self.root.directories.append(directory)
|
||||
|
||||
def getSize(self):
|
||||
return self.root.getSize()
|
||||
|
||||
|
||||
def change_directory(line, fs):
|
||||
match line[2]:
|
||||
case '..':
|
||||
fs.current_directory = fs.current_directory.parent
|
||||
case '/':
|
||||
fs.current_directory = fs.root
|
||||
case _:
|
||||
for directory in fs.current_directory.directories:
|
||||
if directory.name == line[2]:
|
||||
fs.current_directory = directory
|
||||
return
|
||||
new_directory = Directory(line[2], fs.current_directory)
|
||||
fs.all_directories.append(new_directory)
|
||||
fs.current_directory.addDirectory(new_directory)
|
||||
fs.current_directory = new_directory
|
||||
|
||||
|
||||
def process_command(line, fs):
|
||||
match line[1]:
|
||||
case 'cd':
|
||||
change_directory(line, fs)
|
||||
case 'ls':
|
||||
pass
|
||||
|
||||
|
||||
def process_line(line, fs):
|
||||
line = line.split()
|
||||
match line[0]:
|
||||
case '$':
|
||||
process_command(line, fs)
|
||||
case 'dir':
|
||||
for directory in fs.current_directory.directories:
|
||||
if directory.name == line[1]:
|
||||
return
|
||||
new_directory = Directory(line[1], fs.current_directory)
|
||||
fs.all_directories.append(new_directory)
|
||||
fs.current_directory.addDirectory(new_directory)
|
||||
case _:
|
||||
for file in fs.current_directory.files:
|
||||
if file.name == line[1]:
|
||||
file.size == line[0]
|
||||
return
|
||||
new_file = File(line[1], line[0])
|
||||
fs.current_directory.addFile(new_file)
|
||||
|
||||
|
||||
def main():
|
||||
with open('day7', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
fs = FileSystem()
|
||||
fs.current_directory = fs
|
||||
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
process_line(line, fs)
|
||||
|
||||
root_size = fs.getSize()
|
||||
print(f'{fs.root.name} : {root_size}')
|
||||
max_size = 30_000_000 - (70_000_000 - root_size)
|
||||
smallest = 30_000_000
|
||||
total_size = 0
|
||||
for directory in fs.all_directories:
|
||||
size = directory.getSize()
|
||||
if size <= 100_000:
|
||||
total_size += directory.getSize()
|
||||
if size >= max_size:
|
||||
if size < smallest:
|
||||
smallest = size
|
||||
print(total_size)
|
||||
print(smallest)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
23
2022/day7.sample
Normal file
23
2022/day7.sample
Normal file
@ -0,0 +1,23 @@
|
||||
$ cd /
|
||||
$ ls
|
||||
dir a
|
||||
14848514 b.txt
|
||||
8504156 c.dat
|
||||
dir d
|
||||
$ cd a
|
||||
$ ls
|
||||
dir e
|
||||
29116 f
|
||||
2557 g
|
||||
62596 h.lst
|
||||
$ cd e
|
||||
$ ls
|
||||
584 i
|
||||
$ cd ..
|
||||
$ cd ..
|
||||
$ cd d
|
||||
$ ls
|
||||
4060174 j
|
||||
8033020 d.log
|
||||
5626152 d.ext
|
||||
7214296 k
|
99
2022/day8
Normal file
99
2022/day8
Normal file
@ -0,0 +1,99 @@
|
||||
200120010031113332213034140102430141241124321111512323442304040044220141342121012210022220211111200
|
||||
111021120230012003124233312003010303204555454332453445353125225214221214442214301113012111020220220
|
||||
010000112330232223210123331341111021455213441355415452453433542411022110033014112420103200010200112
|
||||
210220131023203033023421012411405531115123145115445215311422135252541100222231431331003220231121021
|
||||
020112210133112114444340100410411231114131452544155151415233415312511222041221113442132231003203100
|
||||
121210122332301142321211440441113455552434332511455325315545354524142541534411112013143013120333022
|
||||
002022223332143323320030004111431434153352153321414154453442552321332341355132444030442110103203212
|
||||
212130023213100232130230411132244242133251435525323326611211534441513532233340420321144212221332012
|
||||
112201210213131241203033341411115513233426453426433653356253533133113511115222441140433214102332200
|
||||
212012000101044144022321521321444445566546646625625665232323663631331412343532242340023204432003233
|
||||
101233132121222100241254211542133266356326564552445466322626353633223221135151311240430411433022011
|
||||
200132020222314334333551152431232424524623645555522366665322366466545513112135535223102441334310202
|
||||
023113000020114221524122422222662645435544455234636242322656464245462233555511334411233402112203303
|
||||
323212301014434412315252233452332225554646452654545433445553336343544664455435323243510303023142200
|
||||
310022200424121333144123222262332322343322244646667564465544426245466232342143412141451122001041322
|
||||
212301111322001335441132334525635254352425553354565445643472236236266635446421522132452121404230333
|
||||
222212444300345211222512256444456624535343536756355746664436374344346652444335121144422222340114403
|
||||
133103420101433344253425324366444265345745457464444766674564476573243345254266312555221132304022243
|
||||
104024111323421413115464433455553477333456354575666765646757774776752425462423244113225443242031103
|
||||
102001244212344453145353232652647556546465453563544776667356374453675332254663444121345213131024201
|
||||
224444241243433331136646422564367344447534333336573546336576477746463642222264422255444411444213332
|
||||
111102440221143134255523244546456346745346547453543465664363545634575433436342252431313443241200434
|
||||
134231321331555233423635635366465473563535535586445888474374535544636375425246452265522242444124430
|
||||
234112414314111344422243544643454775656784865866884848444877466476364476356322553554245224411411221
|
||||
034400114351525345222546546744637535635657575787587675474664764764736443646462322222525151425423322
|
||||
200214241324215322354446653764777674587466544685754678446567884767437556756324542252661541311422130
|
||||
343144113253113264625454456777333344687566876677476786864558645875776364454562645333232242321313142
|
||||
343024121143435322432236376444777668467756646886688564457885758774655565674476525265433235351133020
|
||||
403402124545255442342535445764457654765745674556784877787445455686478773563733543423236235255444144
|
||||
103322531152132266562676355566367676848756788886766967585484486646776553753344443262466623351341241
|
||||
310355244513624552353465735465555764667556575665597778969594858667646774744555337236256442514154340
|
||||
023311451112523462333545544537465688645559988688956997665697964748587858337347363225646321434554144
|
||||
320135522136342345436443367666564847488558589757575579796688785767645678467555334323622425311134113
|
||||
302355525243323546577736555686874886486985688686888898966978978668487864787645754566534465541511251
|
||||
334125312126266532347576536548547584696886997768569758698995755875465674754333433642553345425533431
|
||||
341111335132225635365534457665748575977867585959997886979957965558787465664637533766462255534332423
|
||||
332515314534343636736373478687676678865555895657977886779567677978977887466835476754353523355412552
|
||||
223554423243256435734467677444784886576856669787898778968956989875566754875777467667635224535114135
|
||||
155522522343322534364735656868875656687568869667769697877887796866975856457447636733764232364431215
|
||||
242345244424435673345476658556448689589759768689899966877768987857579874745884637474453634352133231
|
||||
415255446645436567674735664645455855996887768879976678686967768687868985856885736776326622253351232
|
||||
345511155426334655353457846578475998667966669787979667866969678557875668566464436456435236255355314
|
||||
142554534636264637437346664558867877978687978689679869967766679569789677485678377367342526223134543
|
||||
445152112563265336347774464854776998568899676687677797996796877777879786686845577654534235322155423
|
||||
333311452256452445537757558677965658888896678979799998788899698785896978877575444547572432544335251
|
||||
153342523322435374455644657476596955598987666997999878876686677879688676464687476363732553363413554
|
||||
144335145664565566437454557675966795686769969779977988878679878778787789465465637576634655354532332
|
||||
152415343652336664567566647557776598677998979889877998977867798897785759685544636646555455665423232
|
||||
233452324356364643433768554555595977968766779897887998898666688775789556775758843355374525244243434
|
||||
415514136342636535455644448567857957878867697988999887897878896698589669784466744746433345345355353
|
||||
232342145445335734443368474877857768999979889789879797978786868766697957448687837436437246435352325
|
||||
423142134652644455355368647749855698998886897798977997799867788779868756865564445675347463653623132
|
||||
221215125542657466763755887857659858677696867997877899797779899996787779754784846775376254442211254
|
||||
154531463524644747547747455647685566769977767978799879788898879798999996758665537564563322242224125
|
||||
114543323332546776763457675777969696978788779877889799879998997975759878686666834757774555334611241
|
||||
353441154256436766664748544445957885788777978878979877989798876799786999466647747557553324526153313
|
||||
433233236244364537664567776764977668967888876787887977898978679686668778764647857553662664333221513
|
||||
112335142543334473565677774456986769698869989679787999966877889796668798648474667745633463364123315
|
||||
113555236654542657737447854474695576987788777767987976776779677896568655666568777374452626625515123
|
||||
335535115334436455537766485588496998559679678997888767666867796988758985466776445675326242423551222
|
||||
113534446446435634464566878474597579966586699697988866966997787776788976778774466655756463456235323
|
||||
432234422656545375357656547448457656589888789768979867898878979959955468888683644466555336562315155
|
||||
313344415452422533675445775845665999956589788887986877769867786689888565577764433373633363624515141
|
||||
222432351346446453465663784584875977688789959977876966969658866777886544775874577535665532224311252
|
||||
225114233145352533344653757488874695566977756698769768695668575699668757584555454357642544414312222
|
||||
033415322244643242337557674678486867575857998965787859688788778777887745544746656765646262354135222
|
||||
244444135424622245536477356767676647596876888859989597677576756885858547856577434533266366252341111
|
||||
043422441154553466473376764757644888596669857975585975898957778585855575867574554436566563342243533
|
||||
331142132342425642446677456357664865566895568659588999997598897847485545576757377726563624233332331
|
||||
023252542543632422666654576368776445864568889675685656595757555564576478356355573264462564525315531
|
||||
401013153355343645357335364463874854866687865999886679877556446867474565563474773455256232432344241
|
||||
021145311524153334266573666344586785645787666877957988698886547444446737764473344255436645355133043
|
||||
343022114235145422524664767447348848745548778464684486768568675765556575337775543626443412212441440
|
||||
111402455441135334663624565477563468586767564584754776865658486876757446535673333342623334312243002
|
||||
300312451335434322222245676775746358685854756547745674447587647487533473336654232544332431554454412
|
||||
433111155454541556355524273356653577688858857767884847858548544877576457444762553325524214215402141
|
||||
131233333423335563265232427676636343767667757678865557657665545337553674363435662333422331253432142
|
||||
424110224332255444554444426563344537343587775787775766858448446366677553432226234426335534235001312
|
||||
333412002215124441543424366273747763767633456777658554454464446357566564765333524264253113145112300
|
||||
101110030515255434456252656567734365435643756543777575374763565634563366532624443621453215143234300
|
||||
303322412424455315323623364345353365376676743654344676735433644466637676342646445331232331222232310
|
||||
323112211415542144152522545435246756534467755554567676637543357465766366552324534423444455001240332
|
||||
104010010231221552145233456226456635564775656444567465773637433733444632663325561451234351230241312
|
||||
121411232340543435321316435636242655564355535365574763633547465475523553325562122152444444042300041
|
||||
131012210332331125512334254246234345354543573744464635755354544666345534262435114123351541032131413
|
||||
320204021134412321515435566234224352423426577577364457356445435455454244243342521425351312003010221
|
||||
323114214132034241313542544555435465334424654666346364554655422236635456436354122354410044244241323
|
||||
013302120424301452153353441245652435266525344656664634425626224355262362255351231351513443132401213
|
||||
320030122021334215313244242334523262333453263233364243362363226452453421344311524253311414201210001
|
||||
232000301112410134252124412414346224626463252363536262245565624425334453135542241232142142113023001
|
||||
023101113421202000305251552134255163452646652324334242436543224522235515444445314014323100240020120
|
||||
320223110031202012323335553432231212252653563665545464422324656333443431535442453303001103202231020
|
||||
102033222010100142203435155413125314311166645446465322244546532441244154143433143443342400201012012
|
||||
103310002120123402241302221241151441435355114335344522434421453552354154135223134443030043002000021
|
||||
112323110033212002113322411233332355223342424233213123445224135331545115152043042400020200022133330
|
||||
022111301200101044211214231433231311322554214331413543414521424255241531111410022413003020200231110
|
||||
012022111212202121003233141343155411314255551134343533133453252153433344441013011221420230021203220
|
||||
221101122202110034040022441212441254112211113355531534335143125434435312222200311411322330203331100
|
||||
210122210200133032213341213111433213432513121525124133544144433541201142230241123430213303001122221
|
32
2022/day8.py
Executable file
32
2022/day8.py
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def main():
|
||||
with open('day8.sample', 'r') as file:
|
||||
lines = file.readlines()
|
||||
|
||||
matrix = [list(line.strip()) for line in lines]
|
||||
last_column = len(matrix[0]) -1
|
||||
last_row = len(matrix) -1
|
||||
print(last_column, last_row)
|
||||
visible = 0
|
||||
for row_index, row in enumerate(matrix):
|
||||
for column_index, column in enumerate(row):
|
||||
try:
|
||||
if (column > matrix[row_index + 1][column_index] or
|
||||
column > matrix[row_index - 1][column_index] or
|
||||
column > matrix[row_index][column_index + 1] or
|
||||
column > matrix[row_index][column_index - 1]):
|
||||
visible += 1
|
||||
elif (row_index == 0 or column_index == 0 or
|
||||
row_index == last_row or column_index == last_column):
|
||||
visible += 1
|
||||
else:
|
||||
print(f'not visible {column_index}x{row_index}', column)
|
||||
except IndexError:
|
||||
visible += 1
|
||||
print(visible)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
5
2022/day8.sample
Normal file
5
2022/day8.sample
Normal file
@ -0,0 +1,5 @@
|
||||
30373
|
||||
25512
|
||||
65332
|
||||
33549
|
||||
35390
|
Reference in New Issue
Block a user