Compare commits

...

10 Commits

Author SHA1 Message Date
Colin Diem
d03d54c1b9 starts day 6 2022-12-19 08:59:15 -05:00
Colin Diem
db416749fb day5 begins. 2022-12-12 21:23:18 -05:00
Colin Diem
5fd3f79810 day4 complete! 2022-12-12 20:56:19 -05:00
Colin Diem
2cc91de95d day4 part1 complete. 2022-12-12 18:54:59 -05:00
Colin Diem
47475809dc day 3 complete 2022-12-12 17:43:22 -05:00
5546be7204 completes day 3 part 1. 2022-12-12 17:16:05 -05:00
Colin Diem
1cc8907e81 begins work on day 3 puzzle. 2022-12-11 19:34:13 -05:00
de37379cc0 completes day2, starts day3. 2022-12-04 18:45:41 -05:00
f3e85556d7 day2 part 1 complete. 2022-12-03 00:07:49 -05:00
Colin Diem
a935a2e7d4 adds day2 folder and base python file. 2022-12-02 17:37:03 -05:00
20 changed files with 4676 additions and 0 deletions

2500
day2/input.txt Normal file

File diff suppressed because it is too large Load Diff

52
day2/part1.py Normal file
View File

@@ -0,0 +1,52 @@
import datetime
print(datetime.datetime.now())
input = open("./input.txt", "r")
gameResult = {
"win": 6,
"tie": 3,
"lose": 0
}
throws = {
"rock": 1,
"paper": 2,
"scissors": 3
}
rpsThrow = {
"A": "rock",
"B": "paper",
"C": "scissors",
"X": "rock",
"Y": "paper",
"Z": "scissors"
}
total = 0
def determineWinner(opponent, self):
if (opponent == self):
return "tie"
if (throws[opponent] == throws["rock"]):
if (throws[self] == throws["paper"]):
return "win"
if (throws[opponent] == throws["paper"]):
if (throws[self] == throws["scissors"]):
return "win"
if (throws[opponent] == throws["scissors"]):
if (throws[self] == throws["rock"]):
return "win"
return "lose"
def calculateScore(game):
foe = rpsThrow[game[0]]
me = rpsThrow[game[2]]
result = determineWinner(foe, me)
return gameResult[result] + throws[rpsThrow[game[2]]]
for line in input:
total = total + calculateScore(line)
print(total)
print(datetime.datetime.now())

74
day2/part2.py Normal file
View File

@@ -0,0 +1,74 @@
import datetime
print(datetime.datetime.now())
input = open("./input.txt", "r")
gameResult = {
"win": 6,
"tie": 3,
"lose": 0
}
throws = {
"rock": 1,
"paper": 2,
"scissors": 3
}
desiredOutcomeMap = {
"X": "lose",
"Y": "tie",
"Z": "win"
}
opponentThrowMap = {
"A": "rock",
"B": "paper",
"C": "scissors"
}
def determineThrow(opponent, desiredOutcome):
if (opponent == "rock"):
if (desiredOutcome == "win"):
return "paper"
if (desiredOutcome == "lose"):
return "scissors"
return "rock"
if (opponent == "scissors"):
if (desiredOutcome == "win"):
return "rock"
if (desiredOutcome == "lose"):
return "paper"
return "scissors"
if (desiredOutcome == "win"):
return "scissors"
if (desiredOutcome == "lose"):
return "rock"
return "paper"
total = 0
def determineWinner(opponent, self):
if (opponent == self):
return "tie"
if (throws[opponent] == throws["rock"]):
if (throws[self] == throws["paper"]):
return "win"
if (throws[opponent] == throws["paper"]):
if (throws[self] == throws["scissors"]):
return "win"
if (throws[opponent] == throws["scissors"]):
if (throws[self] == throws["rock"]):
return "win"
return "lose"
def calculateScore(throw, result):
return gameResult[result] + throws[throw]
for line in input:
opponentThrow = opponentThrowMap[line[0]]
myThrow = determineThrow(opponentThrow, desiredOutcomeMap[line[2]])
game = determineWinner(opponentThrow, myThrow)
total += calculateScore(myThrow, game)
print(total)
print(datetime.datetime.now())

3
day2/test.txt Normal file
View File

@@ -0,0 +1,3 @@
A Y
B X
C Z

300
day3/input.txt Normal file
View File

@@ -0,0 +1,300 @@
GGVGlqWFgVfFqqVZGFlblJPMsDbbMrDMpDsJRn
LwzHtwdLHHwDrzPZzzsJbJ
wdLTBvSvHvZVGCjhfN
HsSSnZVHjjssZnJpSJjBHHWgQGcgqqQLQdQFqNgWgqGNDg
rmmRwrtfThtTrbCrGGGcLBDTqDBNQLdL
mwPrrbzPfwvbzhwMMnnjHnBjZlnzMM
gjjdMBgdqdTpJpBcjgRRRlqnvrqfnZtrtZDw
zHShWLhCszCWHVbVzQWCPtQvNZRwtfftfNnrnftlfR
PzPSssHbVhCLFMJFcMFJJMjdJw
ZqJdtpfpjmpJjpnwWdttTCDLLTQFNTzTzrcqrQqc
MsSlBGvBsSGGSlbGsCgggNTgzNLczFQNrNQVQcFzFF
sGHHSGllhvMGhSRGCjtjtjnjnnmHWpWWtJ
tMdjQlHPHsGjsCtsCpwwqfhfnnFMDMrpfD
SbNvWvBRJRWwFSgppgSrfg
RNcNbvzJRcVLRVzTRFLjdHCQttdZdPlHstPl
QWqgpdBflpHNCNWNHHPm
VVMbbJsLFVMhrMJMmRjFNHwHjjCTGSSRFj
mbMsZzsLmVhJZrcLcJhLMtnqvBnZdggplDffvlnlvnDn
prnNnsFnZpnBNdNtFrNnzNQQwTTQZqTHTQJQMwHDMDlZ
jgfgcSmbLmhmcPShghRdmwJTQjTlqGlJQJHqQqGHqQ
hRVhPfbCgbVggLVRSSmRhRPhrrrnCzzsvCvrnvFnNppsvBtd
QJLNDWSWQdLFFFhLdt
npHhHMsfsjpZjznRtmrMCdBwFBFrBdmt
HsjHqRRfnnHRsgfHffZspgzqDGQSWbQTDNGhQhSqNPhDWWbT
bsCmFDsGZCNsDmLDLZBSHSJTHnrZQMQSSQ
jqRpwvfqnnRQrftdBMHddB
phpchwpzjpvwRzwcsnlFsssPCCGzDlsD
rMqzVQfrfVZWZhTdRTQL
cgmtFtjFFJDDtFvSFRZdLlhpHZddmwTZWh
FbcSTtctcvFTJNgtJDGNPnCqMPMfMBfznGVsrMCq
wLJfGJJPZLBfwSLGHbqmhhDHHhFDzfhv
FsnpFjVjplTQCspNlCDbzhMMbqvMvsgmHDqb
lRdlTdTddllpRQFRltVVdFRcwrtrcWWcPrrWPrPSrZWLPc
VGVZhTppGTfPnJVJrFqbsmbSSshHqWqRHF
llzDCzlBLdNcCddlMMNBdCCtWHbFqFRRRsHjWtRwSWqbmjWm
NbcMBBvzzMQLCDBVTQQPVrPQPPZVPp
cdcgfmQdqlqhzzPjzfwpwf
GLBGBDvbvRzGwtnnmPpp
ZRCZBRFSRvLRLFvvbLLFQdHMTHTlQlNqNmqFlWdH
vzjzvHtcHvJcDStLLGSShCbbfF
MWFFTVZRMmMgdQdSQLwQrQwbGw
gFTmgmVZssRsWZRNzJlBHHnnJDvzNPlP
rHrvHpmHZfdGDDGGZd
cTlMsNhllMhGchNPCBlhMQgVDdgDSSWVbWVwRQwRSgbV
lnBjnNNTTMnCTcChPNhMvtzvFGLtJrjFtHHHzHJm
lgpdZZMmGVVzVZzt
HfHLrHqbPbzJJzRJJPTl
HsLWWbDqFrqlqfbsbDqDBncpgFmmvpnmmgpvdvjcdM
GpNVbTpJJNvMBMVvJTGvhnWQQScllnhhWlhVSznV
ZjswwHHLZzGnjWjSjl
sHdftLLtgLfwdtPmHtMbNpMTpNqGRbPvTqPv
sHSNNhNwsllGSGGlWSGWSsFrrVbQrdmFrVrrmnrHmrHr
QQMRZDDRcrcnmRcV
fJfCPMJCzTMZSGsWwsWBwqQf
HwQZZJsHdqqsdJQGRgCgVGgSqgpcGG
ljWWbnPhjBlGpCRCnScSGg
hrrztWlbPjltjMPSdJDZSsHttwsZwD
VzzbmzvpvNhvBDqc
QHSJSQGCwJCGrGQjjcgcBFhdgqdqFdDNNw
rCGJtZrHhhtLRsth
TMWwCLPpMTThrvtMRJjbjRvmJs
fDzcHFfSfFQfZzZRJbdmmqqssqtbSW
WWgGZglcllgPBBCBNVGPNr
wrwwhpTpbqhqrshrrfrFfwfzRJGdNJHNmcFzCCzCRJGzGR
vMggvjQvgPvQjVLMMPSZqWNJGCzcNGdcdzHPPzcmCzPz
qDZWvBZVfDhbTtrp
LpDvHdjVghnjbGrn
FBBBPwwlBlwSfFTWPHPWWhmgngmmnPnmbsngngbGrb
FwftBSCSfWCtwfVQDvHHCMVvdQLQ
ZrQpQlSpNlqQCVnQBmdDqmWDqmWWBDBB
HsZMsJvZzLMHTRwWhgDwmfDBgdhWdf
RZvTzJGzRjFrVNVjlQrS
mqjMwfqlSSPmSrlPhwhVpGRcppWcpcGRcGWv
ssJDJJNgZNDWrRWcRpvr
ZTsTnnsLJQgPnfMwmnMrfm
qsVBvZqWLdfbfvLj
mPNRgmHBBGQrCbSbrdfCCSbC
PlQTGcTTcgGFQQGPTGllpqMzwzpVJZwBMssZ
FWGcNRLRLhwJJQfV
nzbzlDBHSpTDbpDpzHwCqhqwJJghQqQMCCBw
JnzndzpmJFmNsrrFsc
gmRwwDwfnRDJgwZLFQFFNGNQrFBmFbbm
CCVHVWWThSrjVGvbNj
WpdqpplppHCWzlClMMTTZJcJsdscJLLdbDDfZDgL
VNtCCMDllpBqDvtdCczTSgjHlzGSHSGZTZ
hPFPsQhhFhLnbsRnLFssdzcHdsSHSSHgjzHG
QPWPQrPPmbdnbWLFPrrBVrVDBqqNMVwttDtBvD
PPNNRggwgRRgHBhDtwhTwbDs
SFGSFSMCJFMrcrCMSSsbtrTbbZhBvtHhrTHD
MFfSMpflQLQflfLjnLmddsLdddqq
RcgbcrrFscVrwZVCgVGGmHppNNndWnGdNqddqqNqND
jTlSTBSTjLTvlvjjPtvMLlhHnftphtDFNFqDnDHWNddn
QBMQvzzjzvJPjFQMmwZJrgmCCJVRVbbc
CzPJsWCpvsNszsJsNsHlDhMrrJGjhrRVhRGgDDjG
tFFdbqFLFdwctQdfVhjRRghTcrjVRTDW
bwQtFLdLBdFmwnHnWHPBNnHCnp
CNTstGNslRRRstlmNmmTZZqfFwtqgwqgfBPSwSWwqgWq
hpDbcHbpSrcgqqzhhWVfqg
DDcLDjbMjCSsZRNlMv
MhHMCMNbzbMHlcqmGmrmWc
tnPggdZPBPgdtttJpdnwVBnmqQcvlQrQlfGqmfWffBcqWD
VPPwPPLPwLGFGLzCbG
rqBcBmjHTGfPbcVgPG
dlDpsdshzlldlDvsWlWvLQbQBbfLFLbPvbBGQBgG
BlBznnRWzlphphBnhZjZtNNCNmrNqjCqHwHN
mQBvmvBmmLJvvrLtttQrfhGlcRGfRhVGWJVChlRG
MzPswTsbTPPsNgMNszgzMpbMfcRcGflVGRfWSpFRlWWWFhcC
bcPsTbgbbTTwNZzTZzvdjdjtQQndZvdrvdmZ
hQzTQJFFZJrcdcdZFFrGFSVWVRWRwRgRHVMWDCDSWc
lPmpNBnnnsNBnLnfbfnCDWMvwRvDCCMPwwHWvM
HpjmffNlnqqhddTddFZjGJ
BwsLFFbHLbVCSCSFbsbFLsJbqnTtZrRMHTZtrTrZTcRRRRTq
lGhNhpPmmhpztZTBrcpjRqpB
QPzdfzBQNgFJSCwsdLbS
ZsZsSBTgffSCqSSfrMnnMwjqmqmnnnqwMm
bbPPbzVclcPzGNlvzVtmnDBnQmtnQLBjJVLn
zPFGplGGvdPbHplcbzzvdlNBTThgRpCTCTfhfsCCsSRZhR
CVLSVCLVZRsHcnzSRpdZZRCdPlmcMWDDlPNqMqtDMmqPMlDt
TBnGjfQrQJjhfWlPPmPQDNlmlP
fjhhGvjvvrTTBhvTBTbvGVRLzVnbSRZpHddspHRzLs
DDtWjfRfftWMLzSQjzzhWjjwRVPHqFbBbZHVwZBFvFwZvZ
JGllgCJlJsrCGPrCNTPdslvZVVNVbvBqNbbpbbFHpBwZ
CcPdnCdmCJjfcftWhtSL
pgpfddDGHWzDNGNGpRCQjCTFHZZQFQjcRT
bJlhqmMvnlrRQFtTthPVhZ
lvbJrlJMBwfzGNTddB
wpbJGGZpsjvtdWvGWF
HqqhBhBqhhNQHTSHqqNzRHVPvTvddWrjtrjFvrvdTdVP
NRLCRzlqHQtNRBLzQllhhZcgbggwmLDZpsgssDpwwD
pDzFzJFcVMcWJFJFzpLBsqWLZssshsGLGbsS
wqHqfvnfrRwQtdQRthhBbBbZLhPLnBTGsh
CfQqlqvtfHNvMVmzmmMCFDMc
GcgpNHvcSNvpSLphdhsLdQTsdWThhQ
wwzttPrrhQswdhnT
tjJjMJRbRbjztmjtjbgcRsNlgglHpDFSlSvg
VVLvLqqPVlvcqLLdwLbHpzcHSsbRJppHbHpF
CfjjCNGmMWhWjhWHWb
ZmGZffggrDqZvZtlbTqL
TTmmhvBvvHWzHpsPpstpLVdwwsLb
qflfFgNctNcCnCCNDnfFFNDwrslwZbPswwZbJLJZbrlPLL
FgQDDcncStCgtqccjSDTHWMThvhTQMBQhWvWRG
SqhVghPccSBhgSBqWBFNQNsHQHMjCCQQWCwQHN
fLZftnlttcbbtZbZlpZtttQjwsCQjRwwRDQspMRMNNQs
TfLtvbJtZmlbTTTtlJbFvVqPSgBdPqPhFSGBcd
pPPNDptcqtpcDztLDhhngnnJgJTmJwNnwm
HVVCsSClHGBCHslWHbSCGGVngTrJwnnJnQRRBrhQhgJhdm
WTWWWsvVlvGbWCFvjDftPpjqZLLtDz
wWclwtDwRvflvffB
sMMsGdsSTMrJZNqczfdvhvnzCnfv
rspppMjMspSTSMpgLjcPFmwPLmPHwb
tCdSMHtHtRFHdWSSJQSgrrrnghTNJN
BGfcvDsfvsqcvqfGvfGnNLhggBNQJNJQmpgQJm
sGfQDPDZzfDZzclwDzwsDlfjtbdHClFRCMWjbMFMRFWbdj
pJNCcvqCccsVvFCpqsmvWJfCBWgSzBBRrrBRDDgDrSbbgQbQ
TMLnLjjffwfwGdjQjDDBjBrDtztRSb
MdPLGhHnMZhlPHHTFfZvVCpmmmcFcVFC
SwFMfCMRCdQDdMbmdFfdbbnlcVncVCcgLqWcNNnCcWlW
hPjQzzhGzhpPrtPJPpPHrVgnqVVncVVnNHlqVnncNB
ptjGrptztpthtrtJJhTsGwFDZZDQmSdfZSwsRZSwfZ
rSSWWCWrdllHWpjcnFNnRCNjQp
bGwwJqGVGbGJVVhgbBgttGmBQjFsMjpMcMnnMBcQFNnsssvv
bfthwmfJfgwwmmwZqVJPHNHSZHWzSlDPrdDdSH
nmJccvclcbwmlbbvVbvsHwJJPCPNCNPnLBhrBPPLBhLhBgBP
MdRGtdDRTqWDMqtMDtQDRWSdLLBsrhLgBCgrgCgNNLPBfNMf
dRZQdDdRRSQWGsjZmwzjmlzsZH
PBGGMrTQTrTBpPQpLpSlwjwfjtlnfwbmGttw
fCsJCWJcvRCtwwjbCl
NsqcsfcvDHFVDJvdLQTrpdTTzTPpHr
rltrwsBTlrfGZggGBLGGNN
jhMnRQJVphMnbhvQjDZNqqZDNTNHZVHGHq
MRvbhQRQQChpvbjvMSvQnMcsFsfwwmlCwFwWcTWwrmPc
DDvLLLBnvrzvbvbmtv
TMwRjTRMGCwGGwrjQQnmrQrrQdhZ
MJPFHFTwgCGqGqgJMGDfSWcsnBSccgVDlnpW
flzVzNrdLNLJzrGlfdlzjrQDgFTpDgDmmmgFmqFDQjQh
CbnBcsZnPZVSnwvVsZbRhhBDpgFphgmgDgTppq
ZWnsWSnncSZsntZCbsswwJMzdLzlMdNMLtMVfrllMt
ZffSgNfgJgGCHZcZrpHrNJTLhqvSLTqQnvVTLvzvLTjV
tWFtHMwlBlDqjjzjnqvvlV
DRMPDtWHPFDBFFwWMFBmFRPgZpJfsffNGJNrGcsprrsmfg
wRZRmpZmlPqZjzGrdrGq
bBhQQFPQbPDVNzVNzdGWNdrf
QFbcDcDbLHgHBPDFRsSSMtmvRttMpCLS
MpWJVVJMcWvpRShcwpLGflmqzSfNdfNLdQzN
CDBTtCgtbjgCRrBrPBTQqzflNqjGdLzzmqffzq
rFgnnBbttDTPtHCDPrPMnpwVJhJvMZvpMvppRZ
sWTTmpsfsWppPTTsTVZWHVVZNvVcdcJvdN
DjjBzjhRHvvvSzdc
rMBjjrjbjrGDlgMlMrGjBgRLPTTwHMsfnFwFQPMPMnmFFm
QRRbDjjmPzNQwFDNmrQmzCbVHrMhBVrJLJJfMGGLtfJBHh
dsWcsqqWSWvnWnWcWGPJLBqhLBqGhBJHHH
ZWnPWgWgPnlbCDDwmmDbRZ
nfPqqfLqQnfHBSqnzztQjVmjfGRWJNGRWsJWJfmJ
TTMlMMlFDMGVGRsVJH
CbDbFDbvgTFFwgTDlDprhlPSqBzSnPdLPtPPHgznQqBQ
fJmWVfHqjfjhZCQZ
NcNzBNvgszQmzjnthZQC
LsLsgBNFmFgTFgGBBgcdMdvPDPDJWrlpVbGpJWqHDlHJHD
SllDdvzgdFDdlPJvbFDDSzFScPTRTNcwfZRwRhcwwNnRZTtf
WBpWBCLGVpLjHrHGGVhZNwcTVcNhVnRcNZ
LHLQLspHWQGpWCHnBvdzDJFlqvdsqgSgqS
GcTctDMjMhpMDRjLsMMsfDWFfdPCFNbnCPnvCPgW
JmvwqlBwnmfdFPFP
SvZqHSZqqHZZZBlllBwSwsRsMHpLjpLsMGtsMspGRT
ClLnCLfClLVllfLLcQjLBCfCmSHVsttsmtsVStDNVdppdsSp
PFrRMbWqMRwFRqRSqwqvMvMsGtgsdmssrgNtdmpNdDGgdt
bwJbPWPwFFPFSczCZzZZCcfjBJ
MwmBmzwJQTcTmfPVfZPwhhwHPH
jlnrglFLvbrGRFGnvFZdNNFfPZddPThVhdPH
RjbjpgbnLGvpLgzBqBpmWmmzqTMS
FnsSpttPnPbNCFDtsPnFHQZTQZgcwgDDTfrfTHMZ
mRjzRzlvBvhjZrQmMMwfZZNN
ldzddlzLRlRWdhjdRLjhRWtJbJbNtJJpJPbCbGCWNG
wBwmNZBTmzzcVcmpzZqdMgPjnLSVlPgDPdbMdg
flJvGtHffHDddddbHjnb
RstrhfrhhRGFQtRhtftvQhvFZpsmpWwNlWqcWTccBNWswqNp
DPWhbzDlQLLlQbLDlLhPhLFNNJqCFGqnNJCCSCnGPnGN
wvwjtvtdwfssvSJgFFvGGSCFcp
mtdrZwwJsrtddrHRtZWbVThLlBzVTzhHQWhB
TsRRWctsTJMQZllggc
zDvhpbprgGvpvVlVQlZpQMJVlQ
rrrvFvGCDhDSrrrvChCgSstBNTSftWBjTdfWBN
JJdssBcLVGrgbBHWrH
QZTptvmvmlZpRDlMMMZCQvnjjFnrjWGFbjnrnFGWgZrz
TMRplDMggtwlppTlvhsJJqdcqwVPSSNcLd
JjTCCrcRvccPLmMP
NfGFPZlNnwBfPlbbbQZGqLHgzLghSmMBzSgvzmDMhv
ZfbnNQpQnZGlGlGpWTddjdTJdpRPTrCj
gWLblMMggdWsdRJlblMRMMqWDvPvcPPPccJPJVTZVZThmcDP
rQFfGfrCHrjnrtNTcPShTSPvvVLtmm
fQrCfLrpLHnCHwslqzqsslswzqRW
zpJtGlJPMPTlTjGJCDGCDljpdnvhhWnZnZnDwwmvnWDWWvdd
sHrVrSrRRRLNgLVBqSsZmWwvwcvwZjmwngmdbn
QsQQBrrLHTjPpTQzzP
JDlzHHzzptRDmbTMrrVQ
dRRNqnCBnmrQsVQQ
wFPCBNFgwjPwhgFNztftpJRPpzRvvHtZ
DlBhrDBPPwMWwhWchW
ntSqbbSJFJNqzVzjCfMvfSlSRWccRL
mVlHtNVtqldbJVmNHmdTTBBgrQQgGsPQdrDgsP
HWHNbBgvNLdcvQMnSf
wqqqVPDPhqwszFwrrszFfMdWthLcMdfhthSQfJSt
qVPVwTzFwFDpDrPDzDPFDPlCHjBGjTmZGjbWWGZBRTNjjH
GVgdWjllSqgjdgHqqlfmhwcpwCzhvZwMcScv
nsJQbLRQsNnzQDQQPPBbRBRhfZwpZcvwpvvmLCcvpcmfMM
DRJtnnRbBBnPztsrPzRBPbsFFHqqVrqggjFWqrgWjTGgFq
hhZJQPJFHGGlcWWslpNN
VwwwJjvwMtrCnwjDNDzlfscWszWW
nVStCrMqbVwqVqSqwnLPhTJFdRgJHZSFRLTP
vPgMbbRhhvMvNjjLWsWQsHQmHwBrmmBzww
tFctDnVFpppHVBTdzdTQwl
FtSFqSptfJCqqJStZCqDpDJMhvLLgLMgQgjgGZgGgMPLZg
zwsWgSGWLSVhPWhtLgLWhPVNQTmDrDQttZpdQtdpQDDQZQ
fjCHcvvjMDrppCQpVV
VMqRnVJMVLPzbRWhGh
mjRmzQlzDzNHWwDZ
FBfJBGqnnpfSVGnpJbJVfNtCsJHWZvrsNJCZrCNsvN
fZPBnfPqSBqdfpFbVnVSjgdcLLgRLjmgRhLLghlR
FSFnTcppdQtnnDhtzDfg
ZLGVmBLBVwZCVjjGqGhVwVVgzzbMDtNNvszMmMffNDDvtM
VZPJjBZVqBZZBjqwVqllpSTphhQFPShWSQcW
hTRdcLrCLgplLvBFGvlL
nZDZqzbDbDzRZtVNDzDWGwslsllBFpnlpGvJssFG
zbqjNWQVmVPrrRjRdRhS
VpNCbVHlHHZfflVfmchctqFcqQQjZmZM
WDSRGgsSvgJSRrnWgqQhmjBqmhqrtLqmQm
znSGTgDJnsDGzgwCwlpbCNwHzVtl
sTTTrpHFFFqTnQbbvfJdDzHHDLVV
CjMtgMgRvbPfjjvB
mhMvlhhWClvqshNTQQqsNN
tWFtFBzbwdFrpmdhdm
qTqDjJjJQQqMjTDLJjNqNqPNdmpcSmhdmhhmcrWZpdPGddcc
RjNQLJNTTJDDJRHHjQqnMWtlvvVvbtBvRVzgzgwgVg
CGdQjwdJrbBmpmZZZlRWcb
NgtMPVstgSzBLzhgzgLgDRlcmDWRmlZvcSmDSvvp
LhNsgPPLFPPsNzMhhVzPsGJBFqwQGfnqfQjdGdGfwr
CNbNdbzjCZpPNzjmzjsCMRJvnnMRGnsvJGRs
wrtdwTLWFcFWdFgwRRsnJGnGfTGJfMsq
FttcwgBtgVLgPldQSNZBzBpz
DjRZrrRmttRFDvDrFTZsnWnHVSTSSJVZJH
dNNhLqlLLqdCzfMMlCfSncTVVWcHdcVsVdSVnT
QqppMfzMfqWCwbRQrwFrrttQ
dwGjHrtjsdhfCHnPSpfMfDPpPDWS
lmNzzlLbFqcqNgzpWMSvbbvDQDGWDp
LBmglgmqBqmrwCGhCjVtBC
tvHgWZCCprlgpWglCtjPhLmPmhVdJFSzVzdJVmmQ
fBnTTnNNBnwfnNqcBbBBTbGJQQJhSSdQJJsmdJFSQGSmVV
cMcDwFbRfFRlHCRCZrrp
ZFWmgghzBgwgjWBzjzmRWWMmsVwnVrsdVdwNrrpnnVrPCnCP
GLLbtGqllctqvGJvSlQbJGsPnVdsdpsTPLsVppBCTVss
tJBStGSvctvDDfczmRgRZjzDjZmgzH
FMrLmsQQSWzCZBhpQJTQQZ
dPPVncVvPBJDCPhwJD
fvHbbVHvqnvvvBzgLbbGGmrbMr
mrZzrzqDrhZqDddSFrCGLLLPQPQBJPJJBnQq
TgbpGblWlMsjgWlgMfpNRgbRHHBnHHHtLpCJPCPBnBLJtQQL
sbTlblTlvRbbGblbFcdDzccVcDVvzzzd
zMzfzlGwSBMMSCMzhsPgfcPcfcbhjQPt
FHHqJVdJmFmdVrJdJppthscjGtqRPRcccgcQbR
rvNJJpLrvvLnJvNFFvZZZBWznBWGSDCMnCwz

51
day3/part1.py Normal file
View File

@@ -0,0 +1,51 @@
input = open("./input.txt", "r")
def determinePriority(item):
if (item.isupper()):
return priorityValue[item.lower()] + 26
return priorityValue[item]
total = 0
priorityValue = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6,
"g": 7,
"h": 8,
"i": 9,
"j": 10,
"k": 11,
"l": 12,
"m": 13,
"n": 14,
"o": 15,
"p": 16,
"q": 17,
"r": 18,
"s": 19,
"t": 20,
"u": 21,
"v": 22,
"w": 23,
"x": 24,
"y": 25,
"z": 26
}
for line in input:
lineLength = len(line) - 1
lineLength = int(lineLength / 2)
pack1 = line[:lineLength]
pack2 = line[lineLength:]
dupItem = ""
for item in pack1:
if (pack2.__contains__(item)):
dupItem = item
break
total += determinePriority(dupItem)
print(total)

54
day3/part2.py Normal file
View File

@@ -0,0 +1,54 @@
input = open("./input.txt", "r")
def determinePriority(item):
if (item.isupper()):
return priorityValue[item.lower()] + 26
return priorityValue[item]
total = 0
priorityValue = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
"e": 5,
"f": 6,
"g": 7,
"h": 8,
"i": 9,
"j": 10,
"k": 11,
"l": 12,
"m": 13,
"n": 14,
"o": 15,
"p": 16,
"q": 17,
"r": 18,
"s": 19,
"t": 20,
"u": 21,
"v": 22,
"w": 23,
"x": 24,
"y": 25,
"z": 26
}
lineNumber = 1
group = []
for line in input:
group.append(line.replace('\n', ''))
if (lineNumber % 3 == 0):
badgeItem = ""
for item in group[2]:
if (item in group[0] and item in group[1]):
badgeItem = item
total += determinePriority(badgeItem)
group = []
break
lineNumber += 1
print(total)

6
day3/test.txt Normal file
View File

@@ -0,0 +1,6 @@
vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw

6
day3/test2.txt Normal file
View File

@@ -0,0 +1,6 @@
vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw

1000
day4/input.txt Normal file

File diff suppressed because it is too large Load Diff

15
day4/part1.py Normal file
View File

@@ -0,0 +1,15 @@
input = open("./input.txt", "r")
total = 0
for line in input:
trimmedLine = line.replace("\n", "")
elves = trimmedLine.split(",")
elf1 = elves[0].split("-")
elf2 = elves[1].split("-")
if (int(elf1[0]) <= int(elf2[0]) and int(elf1[1]) >= int(elf2[1])):
total += 1
elif (int(elf2[0]) <= int(elf1[0]) and int(elf2[1]) >= int(elf1[1])):
total += 1
print(total)

34
day4/part2.py Normal file
View File

@@ -0,0 +1,34 @@
input = open("./input.txt", "r")
def inRange(num, start, end):
if (num < start):
return False
if (num > end):
return False
return start <= num <= end
total = 0
for line in input:
trimmedLine = line.replace("\n", "")
elves = trimmedLine.split(",")
elf1 = elves[0].split("-")
elf1 = [int(elf1[0]), int(elf1[1])]
elf2 = elves[1].split("-")
elf2 = [int(elf2[0]), int(elf2[1])]
elf2 = range(elf2[0], elf2[1] + 1)
elf1 = range(elf1[0], elf1[1] + 1)
elf1IsInElf2Range = False
elf2IsInElf1Range = False
for numbr in elf1:
if (inRange(numbr, elf2[0], elf2[len(elf2) - 1])):
elf1IsInElf2Range = True
break
for numbr in elf2:
if (inRange(numbr, elf1[0], elf1[len(elf1) - 1])):
elf2IsInElf1Range = True
break
if (elf2IsInElf1Range or elf1IsInElf2Range):
total += 1
print(total)

6
day4/test.txt Normal file
View File

@@ -0,0 +1,6 @@
2-4,6-8
2-3,4-5
5-7,7-9
2-8,3-7
6-6,4-6
2-6,4-8

514
day5/input.txt Normal file
View File

@@ -0,0 +1,514 @@
[Q] [N] [N]
[H] [B] [D] [S] [M]
[C] [Q] [J] [V] [Q] [D]
[T] [S] [Z] [F] [J] [J] [W]
[N] [G] [T] [S] [V] [B] [C] [C]
[S] [B] [R] [W] [D] [J] [Q] [R] [Q]
[V] [D] [W] [G] [P] [W] [N] [T] [S]
[B] [W] [F] [L] [M] [F] [L] [G] [J]
1 2 3 4 5 6 7 8 9
move 3 from 6 to 2
move 2 from 8 to 7
move 3 from 3 to 8
move 2 from 5 to 3
move 5 from 9 to 7
move 5 from 3 to 5
move 1 from 4 to 2
move 3 from 2 to 1
move 2 from 9 to 6
move 4 from 1 to 4
move 6 from 5 to 8
move 1 from 6 to 3
move 8 from 8 to 9
move 5 from 9 to 2
move 1 from 3 to 4
move 11 from 7 to 2
move 1 from 4 to 1
move 1 from 5 to 9
move 1 from 3 to 9
move 1 from 9 to 5
move 21 from 2 to 6
move 2 from 8 to 4
move 5 from 8 to 6
move 4 from 9 to 7
move 2 from 5 to 6
move 5 from 4 to 2
move 4 from 7 to 2
move 20 from 6 to 9
move 7 from 2 to 7
move 1 from 2 to 6
move 7 from 9 to 6
move 3 from 7 to 9
move 7 from 1 to 9
move 3 from 7 to 4
move 1 from 2 to 5
move 1 from 5 to 2
move 1 from 1 to 9
move 23 from 9 to 1
move 1 from 2 to 4
move 1 from 9 to 6
move 1 from 1 to 5
move 20 from 1 to 7
move 1 from 5 to 9
move 12 from 4 to 2
move 2 from 1 to 3
move 1 from 3 to 5
move 4 from 2 to 9
move 2 from 6 to 4
move 9 from 7 to 4
move 11 from 6 to 7
move 7 from 2 to 8
move 1 from 5 to 7
move 2 from 9 to 7
move 1 from 6 to 4
move 6 from 8 to 2
move 3 from 7 to 1
move 6 from 2 to 4
move 1 from 3 to 2
move 7 from 4 to 3
move 1 from 8 to 5
move 3 from 6 to 7
move 1 from 2 to 9
move 1 from 6 to 7
move 4 from 4 to 1
move 1 from 3 to 1
move 22 from 7 to 6
move 3 from 7 to 6
move 4 from 7 to 6
move 5 from 4 to 5
move 26 from 6 to 2
move 8 from 1 to 9
move 2 from 6 to 5
move 9 from 9 to 5
move 2 from 9 to 4
move 1 from 5 to 3
move 1 from 9 to 5
move 1 from 5 to 6
move 1 from 4 to 3
move 3 from 5 to 8
move 1 from 6 to 2
move 1 from 6 to 1
move 1 from 1 to 8
move 4 from 5 to 2
move 7 from 2 to 4
move 8 from 5 to 3
move 1 from 5 to 7
move 12 from 2 to 8
move 6 from 3 to 8
move 1 from 7 to 6
move 10 from 3 to 4
move 11 from 8 to 7
move 6 from 8 to 3
move 11 from 7 to 4
move 1 from 6 to 3
move 6 from 3 to 1
move 6 from 1 to 5
move 15 from 4 to 7
move 1 from 3 to 5
move 7 from 2 to 3
move 5 from 5 to 9
move 2 from 3 to 8
move 1 from 9 to 4
move 1 from 9 to 7
move 1 from 4 to 5
move 5 from 7 to 8
move 13 from 4 to 1
move 8 from 8 to 2
move 2 from 2 to 7
move 7 from 7 to 4
move 1 from 5 to 1
move 1 from 5 to 9
move 3 from 8 to 9
move 7 from 9 to 8
move 1 from 5 to 2
move 6 from 8 to 2
move 6 from 7 to 6
move 2 from 2 to 7
move 2 from 8 to 3
move 3 from 4 to 5
move 1 from 7 to 1
move 3 from 3 to 5
move 4 from 4 to 6
move 3 from 6 to 3
move 11 from 2 to 9
move 5 from 3 to 4
move 1 from 1 to 4
move 7 from 9 to 4
move 1 from 6 to 4
move 5 from 5 to 4
move 9 from 1 to 3
move 4 from 6 to 3
move 2 from 1 to 7
move 3 from 9 to 8
move 1 from 9 to 5
move 5 from 3 to 4
move 3 from 4 to 6
move 3 from 7 to 5
move 4 from 2 to 4
move 10 from 3 to 1
move 2 from 8 to 9
move 1 from 8 to 4
move 2 from 2 to 9
move 5 from 5 to 8
move 2 from 6 to 3
move 4 from 9 to 4
move 2 from 3 to 7
move 2 from 6 to 3
move 1 from 6 to 1
move 1 from 8 to 5
move 1 from 5 to 8
move 1 from 4 to 8
move 17 from 4 to 2
move 11 from 4 to 2
move 1 from 8 to 6
move 28 from 2 to 3
move 10 from 3 to 1
move 3 from 8 to 1
move 1 from 7 to 8
move 1 from 7 to 1
move 1 from 6 to 5
move 10 from 1 to 5
move 20 from 3 to 5
move 3 from 1 to 6
move 3 from 8 to 1
move 18 from 5 to 1
move 4 from 4 to 6
move 4 from 5 to 1
move 1 from 6 to 8
move 7 from 5 to 8
move 2 from 5 to 3
move 34 from 1 to 8
move 4 from 1 to 7
move 36 from 8 to 6
move 6 from 8 to 4
move 3 from 6 to 4
move 1 from 1 to 2
move 1 from 3 to 2
move 1 from 3 to 5
move 1 from 1 to 8
move 1 from 7 to 2
move 3 from 2 to 8
move 3 from 8 to 1
move 2 from 7 to 5
move 5 from 6 to 4
move 31 from 6 to 4
move 1 from 7 to 3
move 13 from 4 to 7
move 2 from 5 to 9
move 1 from 1 to 9
move 1 from 3 to 1
move 11 from 4 to 9
move 12 from 4 to 3
move 4 from 9 to 1
move 1 from 9 to 8
move 1 from 5 to 9
move 3 from 6 to 5
move 3 from 5 to 1
move 11 from 7 to 8
move 6 from 4 to 8
move 3 from 3 to 8
move 5 from 1 to 6
move 1 from 7 to 3
move 5 from 8 to 3
move 2 from 4 to 7
move 8 from 8 to 4
move 5 from 8 to 2
move 2 from 2 to 1
move 7 from 9 to 2
move 5 from 6 to 7
move 6 from 2 to 4
move 3 from 9 to 1
move 3 from 1 to 4
move 2 from 2 to 1
move 5 from 1 to 2
move 6 from 2 to 9
move 4 from 7 to 6
move 2 from 9 to 6
move 1 from 2 to 5
move 1 from 6 to 5
move 5 from 3 to 1
move 1 from 5 to 3
move 2 from 6 to 1
move 1 from 9 to 7
move 3 from 7 to 3
move 4 from 8 to 4
move 1 from 5 to 6
move 9 from 1 to 4
move 4 from 6 to 8
move 2 from 7 to 4
move 2 from 1 to 9
move 10 from 3 to 1
move 7 from 1 to 3
move 1 from 1 to 2
move 1 from 2 to 4
move 2 from 3 to 8
move 6 from 8 to 9
move 2 from 1 to 2
move 30 from 4 to 3
move 29 from 3 to 7
move 2 from 2 to 4
move 7 from 9 to 5
move 6 from 4 to 8
move 5 from 8 to 9
move 5 from 5 to 7
move 1 from 5 to 4
move 17 from 7 to 9
move 6 from 3 to 9
move 4 from 3 to 7
move 1 from 8 to 6
move 17 from 9 to 8
move 8 from 9 to 3
move 1 from 5 to 6
move 9 from 8 to 7
move 3 from 9 to 5
move 1 from 4 to 5
move 2 from 6 to 1
move 3 from 3 to 8
move 2 from 3 to 5
move 1 from 3 to 8
move 10 from 8 to 4
move 2 from 1 to 9
move 1 from 8 to 1
move 1 from 1 to 5
move 1 from 8 to 6
move 4 from 4 to 5
move 1 from 3 to 9
move 3 from 9 to 6
move 1 from 9 to 8
move 2 from 9 to 1
move 2 from 1 to 7
move 1 from 9 to 1
move 3 from 4 to 6
move 2 from 4 to 9
move 1 from 1 to 8
move 2 from 8 to 1
move 5 from 6 to 2
move 2 from 1 to 4
move 2 from 9 to 1
move 2 from 6 to 3
move 2 from 3 to 1
move 2 from 4 to 7
move 4 from 1 to 5
move 15 from 5 to 4
move 4 from 2 to 5
move 7 from 4 to 2
move 4 from 4 to 5
move 1 from 3 to 9
move 3 from 5 to 2
move 9 from 2 to 1
move 3 from 5 to 4
move 1 from 5 to 3
move 1 from 9 to 7
move 1 from 5 to 8
move 4 from 1 to 6
move 1 from 3 to 2
move 2 from 1 to 2
move 3 from 2 to 8
move 14 from 7 to 2
move 2 from 6 to 4
move 19 from 7 to 8
move 1 from 7 to 1
move 23 from 8 to 2
move 33 from 2 to 1
move 1 from 7 to 1
move 7 from 4 to 3
move 1 from 6 to 2
move 15 from 1 to 7
move 6 from 2 to 8
move 1 from 8 to 2
move 1 from 2 to 8
move 2 from 3 to 8
move 3 from 8 to 5
move 1 from 6 to 1
move 2 from 4 to 7
move 1 from 5 to 9
move 3 from 8 to 3
move 1 from 2 to 6
move 18 from 1 to 4
move 1 from 6 to 3
move 2 from 5 to 1
move 2 from 8 to 2
move 5 from 1 to 9
move 15 from 4 to 9
move 5 from 9 to 5
move 1 from 1 to 5
move 1 from 1 to 3
move 1 from 1 to 2
move 3 from 2 to 8
move 9 from 9 to 8
move 11 from 8 to 4
move 1 from 8 to 3
move 4 from 7 to 8
move 3 from 3 to 1
move 3 from 3 to 7
move 3 from 5 to 8
move 3 from 5 to 3
move 5 from 9 to 7
move 9 from 4 to 3
move 1 from 8 to 9
move 9 from 3 to 7
move 2 from 3 to 2
move 1 from 4 to 1
move 1 from 8 to 6
move 10 from 7 to 1
move 2 from 2 to 6
move 2 from 6 to 8
move 2 from 9 to 4
move 14 from 1 to 9
move 3 from 4 to 7
move 1 from 6 to 3
move 2 from 8 to 4
move 8 from 7 to 5
move 6 from 7 to 5
move 12 from 9 to 3
move 3 from 9 to 8
move 8 from 8 to 2
move 7 from 2 to 1
move 1 from 7 to 2
move 6 from 7 to 2
move 7 from 3 to 6
move 1 from 6 to 3
move 7 from 2 to 1
move 5 from 4 to 8
move 2 from 7 to 9
move 1 from 2 to 7
move 4 from 6 to 1
move 2 from 8 to 1
move 1 from 7 to 6
move 2 from 6 to 1
move 3 from 3 to 7
move 1 from 4 to 6
move 7 from 3 to 8
move 6 from 8 to 1
move 1 from 9 to 7
move 22 from 1 to 9
move 2 from 7 to 2
move 3 from 3 to 2
move 5 from 1 to 3
move 2 from 2 to 7
move 2 from 6 to 9
move 3 from 9 to 4
move 2 from 4 to 5
move 1 from 4 to 7
move 1 from 1 to 9
move 13 from 9 to 7
move 3 from 9 to 5
move 14 from 5 to 3
move 5 from 9 to 5
move 2 from 9 to 7
move 9 from 5 to 3
move 15 from 3 to 2
move 12 from 7 to 3
move 3 from 2 to 7
move 8 from 7 to 5
move 4 from 8 to 9
move 1 from 9 to 6
move 1 from 7 to 5
move 14 from 2 to 7
move 2 from 9 to 4
move 1 from 6 to 5
move 18 from 3 to 2
move 5 from 3 to 9
move 2 from 3 to 6
move 2 from 4 to 8
move 15 from 7 to 6
move 1 from 9 to 1
move 2 from 8 to 3
move 1 from 7 to 9
move 6 from 9 to 6
move 2 from 3 to 7
move 3 from 5 to 8
move 8 from 5 to 3
move 2 from 7 to 9
move 22 from 6 to 9
move 12 from 2 to 3
move 1 from 1 to 9
move 1 from 2 to 6
move 1 from 6 to 5
move 6 from 2 to 6
move 7 from 6 to 3
move 20 from 9 to 4
move 5 from 9 to 3
move 7 from 3 to 5
move 14 from 4 to 6
move 2 from 4 to 1
move 2 from 8 to 3
move 2 from 1 to 5
move 9 from 6 to 1
move 20 from 3 to 4
move 5 from 6 to 8
move 1 from 5 to 9
move 1 from 9 to 6
move 9 from 5 to 7
move 1 from 6 to 5
move 2 from 3 to 4
move 4 from 8 to 2
move 2 from 8 to 4
move 3 from 3 to 7
move 5 from 1 to 7
move 4 from 2 to 7
move 1 from 1 to 3
move 3 from 3 to 6
move 4 from 7 to 3
move 1 from 1 to 4
move 3 from 3 to 5
move 1 from 1 to 7
move 28 from 4 to 3
move 20 from 3 to 5
move 16 from 5 to 6
move 3 from 3 to 2
move 2 from 3 to 6
move 6 from 7 to 5
move 1 from 3 to 6
move 1 from 2 to 1
move 10 from 6 to 8
move 2 from 1 to 5
move 1 from 4 to 8
move 1 from 6 to 9
move 2 from 2 to 5
move 10 from 7 to 4
move 2 from 3 to 4
move 1 from 3 to 8
move 1 from 9 to 4
move 6 from 4 to 1
move 10 from 8 to 6
move 1 from 1 to 4
move 8 from 4 to 9
move 3 from 1 to 5
move 14 from 5 to 8
move 2 from 7 to 5
move 3 from 9 to 7
move 5 from 9 to 5
move 2 from 7 to 3
move 16 from 6 to 9
move 3 from 6 to 3
move 1 from 1 to 5
move 1 from 1 to 4
move 1 from 7 to 3
move 2 from 6 to 1
move 2 from 5 to 7
move 2 from 7 to 1
move 3 from 3 to 8
move 12 from 5 to 4
move 1 from 5 to 8
move 1 from 1 to 4
move 9 from 4 to 1
move 11 from 1 to 7
move 10 from 7 to 4
move 3 from 3 to 7
move 1 from 1 to 7
move 5 from 4 to 5
move 8 from 4 to 1
move 1 from 4 to 1
move 5 from 5 to 4
move 2 from 7 to 5
move 2 from 7 to 3
move 9 from 1 to 7
move 16 from 8 to 5
move 3 from 8 to 7
move 6 from 4 to 3
move 17 from 5 to 1
move 14 from 1 to 2
move 7 from 2 to 4
move 5 from 2 to 6

32
day5/part1.py Normal file
View File

@@ -0,0 +1,32 @@
input = open("./test.txt", "r")
stacks = []
moves = []
count = 0
def parseCrates(iLine):
crates = []
crates.append(iLine[1])
crates.append(iLine[5])
crates.append(iLine[9])
stacks.append(crates)
print(crates)
def parseMoves(input):
command = []
for item in input:
if (item.isdecimal()):
command.append(item)
print(command)
for line in input:
if (count < 4):
parseCrates(line)
if (count == 3):
count += 1
count += 1
if (count > 4):
parseMoves(line)
print(stacks)

0
day5/part2.py Normal file
View File

9
day5/test.txt Normal file
View File

@@ -0,0 +1,9 @@
[D]
[N] [C]
[Z] [M] [P]
1 2 3
move 1 from 2 to 1
move 3 from 1 to 3
move 2 from 2 to 1
move 1 from 1 to 2

1
day6/input.py Normal file
View File

@@ -0,0 +1 @@
tzltzltthfthtdtstftbfbnffdjjvnvcccnznpndppsvvlnvlnvndntnllwffvwwcpwccssqbqnbbwzbwwfjjscspspfsfvvzjvvmjvjwjljbbbqtbbcqbccdqcdcpddnvnjvvqwwbrbggjllhbbzlblrrrcwwrfrmffgddfsddnqnqpnnmzzwlzwzqwqgqnngnfnvnhvvfnvvszzrbrqbqnbbrsbsvssgngwgqwqbqsbsvbbdvdfvdvbbqlqdlqdllnppwcclwlvwlwjlwwdjjjcschhhmrrnnrznzlnnwmnwnfngghngnpggmrrzrttdbdtddjhdhrrqddnhnjjntjtbtmtffwcfcnfcnfnjjfnjfjjhrhhgfgttgmttltfllfqfnqqcbbrlblrbrcrssrllhddmnddmcdddvttfdfqfmqqcncggczczdccvhcvcjvvgnnqttltcchzhjjwmmqvqtqnqbbhddcqdccnwccttgwwzssncncjjprjjpbprrndnrnrhnhrnhngnhhbjbccpmpmrppjvpjpqjjsvjjhttcclmmqzzlggtqqqgdqqbhhtmmqfmqmwmjwmjmmnsmsvsrrvpvhhtshhhmqmdqqqqlfffwgwhwjjrfjfmfrmffgzzjvzznqqwggcvcnvvcpvpjpjbpbrpbrrzhhcffqqlzzrmzrmzmzrrqdqrqnqrnrnqnrnsrrnjrrgllgqlljldjjmvvqbqhhsmsmddsfdddcmmphhtjhjzhjjjhcjjzppwhwvvdnvnvpnvnlnvnffrjjtzzdqzzngzgqghhmvvgwwqhwhlhvvfzzdpzddtbdtbtvtlvlqlllvvdvsdsslccbscsbbcggldlvvdccdscdsdzsddpggcfggnffpjpnpcncfcqqlvvszzbpbqbcqczcqzcqzqqlrlwwbgglrrbgbhhlbbsffrprtpppdwdhwhbbpssvbvnntbbfnfddmmfcfcjfftbfbdbccngcgjcjtjftjffrwwtwlwddczcnzczpzcpccrqcrczrzcrzzhnntgtqgtgztgzzcpphshwswfwqqnzngzzbpzzpqpzqznzdzmzqqjzzhnhvnnqjnnrdrcctdtppsffzvvwvbbpttsrsspsddfvvfllrtlljpjlplcctthbbgbqgbgmmpwpvvghvhfhwfwcwvwrvwrvvcgccdncddbmbmfmlffgqggrzgzhhzfzdfzfhhzdhzhjzjhhbffrtrjtthssbpspddpttrggdndsnnjwwzrwrvvmqvmvdvhvjvnnqmmhrhrzzzwttnftfddsdfsfjsjcccvhvgvgzvgzvzbvvhwhbbpccfjfllgmlggtbggdsgsmmmnznqnhqhrqhrrtthwhqqvzqvvvqgqffpvptvpvwvbvsscsnnhlnhhzrzjrjrllcffpqpbpsbbflblppqffbqqpttccdgcgdgfdfgdgjddjljpljppdspddflftllhchmcmwcwddrqqsdsswwmwwwjdjvdvwwcgcddmhhqtqvqmvvnffqppnvpphpnnshsmhmdhmdddlnlmnmsnnpttlfttnqnhqnqrnrddplplbpbdpdhppccbnbwwpwzwgwdgdnggcmmtnmnznmzmwmrmtrrjppjgjmggndgnnjzzrczzftztzgzvgvddgmdgmgpmmgjmmnrrmvmnvvhqqggsnnplnlnbbrcbbpphssnqsnspnncfchhvjjdjvjfjddbjbddhlllpdnrhtzhqpphzfbjclncdlrbtzhcwslpnstdvjslnzfrvfdlmpgpfhrqtjvqvjlqgdcjrbjtjrgvbfwjzsvrbmffnhvjqnshvdjbgwmpwlfjznngzpqbvlztnvgvjsnwvhpfwbhfsmjgwwjdrrwbtvpwtzvjfhwrmnrhdsvgpgdsfgndmffqfplsgjrsvztzlznqsrbldbmmhqmjtrzscrbwlpgztlrvllprnhzsvtnvwzmjwqhqpjqhntcrscwcdnwzpvbdczzcmzrmdwthdtszqzftcsfbwfqggpcntfrgwpmjpdzjnczwcjmdjnrqjfwqbznznmcdvzqlpqschnmcfqjjrjwfmqqftfdhdzffvshqbmrgrpvlgqcgsbsngttvcpjswdgrhbblrhjllfbzngqjzzbdwtnlnrbpftvwbmrhvcnntdrbvtrtpcsqdsrvpsgggfpwcbzhwhwmmmmmgjzgdtwnzjdwjfljghbjvjnsgshmdpztnbbrnwfvzhtzqpzttftdmcmqzlnrgncwwtpwqrgmpmwwchwhbbbblcndbsrrqtnztcmqhvdwfcswnswvhqdtqfdrhjgczqvrzqczmnpcgbwntjvlsfrzrrjtsvfzfmbwwsftwqvttpjvbggrlcspnfhwwmrhdbbhdcjvmrhppvcmtmfhszjlcjjsdqfvjttcmffwzfpmjmjzhcrqmhhwzhjlnwphvvhmrbllsvpjljthjndffrdbmdjncnmdtcwfwjdwnrdlvqsbzczlhwrtpnzfwzzwbrqpglgvrjsnsprvwszmlrjcdgzwchmcqrjdlzqfvqwwfszpptprhcfsdfcrnhvhgvcdwgnqzjtmgznltbjjqwzlljrqcmpdncshzvsmvjwlmvtwbtjcgmqfslvwcfqpljzdjmdvqjlztbsbshcwhlvzcmzljvrrhrbzwvthgtnszpcrrdwcmtdncdzlbdscfbhrlqttcfshqrsgvzhlcnvfhppdqvblsznmctftmnslwgbmbgshgwvmzpdnmqmjgqnvrwprmbzrdprrbcwnslczvzgnssjqqzdrlntrnsrgbjjcpqvnqwvnwgslchqzbphcqsbvgvwzlnsndfrhqjvtlnqpcsgswzfvhjmfgwgfvhjgzntdbztmjsbmtwlfmvvgvztvwwmqclcgctqbvljgfngcvfqlmmvqmbtrnnbhqjjndzqhvvdztjgvwgrtltfrlzrjcpgwvpqwmcwmqccjtjhhbrrqphlpljvhjzpdfcdsgzfpnzdzhfdqjsnrvmwstrmmwmlhbvrjbtnmvwcqnzqzzpwzjdnfhqwwlsvgnnjgffzcnrtbjfwllnrgppchqwnfpwpgnfbvwcbjrlscnwlswjmnrcrhtdhgpzvgtfcqzgqtwvlhrgbmjvvzhrlzfvmrdjjctvfwsgmjwbqslhmjlcvlwrdqfmbhcfrmrvqtslplwpsgrfmntmtvmvqttbspmftgqdzlcfplcvvfmmjttwqjpdtjzzsfjcprvbwdvfrpzddhwrlmsnpjzqgdlfdzvdjnjtgtfflzzvjlmnnvmglrptsnppwscznltcvzfjmwshnsqsvsjpqwsqlbwzslhgrdcbbvcjspqfntbcpwwrphgpmwbpqdcfvvtlsgpfshtcrdftsltwnbnmzfwcwlmrhlntmmnnpsdchvntcwbnmjdgwcmzzvbrhbdbmlgwppzwsqvcccdbfzfsfhtmbppnwbtjvrvjtmddhmrjdqgnmrnjjpqsgtbgcvtclzzstlpldtqbnnvqjfbjcfzblvcwhjphzcgwfljjhzzmwdcrzsssznztcwpjlbcffnlmsfjbmtvhhcljmtqdprdmdgwgpnnlmhgwpsgprfqnspmntrdjwjmrflsbfpqhzswbsrdbdhjmvtwmjjnmpllgfllzgwwmswjcmggbrvsbbhjmsdzzpbhbrlphwdsmjdzsqjfrmdmpljnwscjrhdvzqbhhvpmhwqfrrhzlncrrrzhmjdwqjcbsqjbhbdbjzpslrnnbzctnnlhqmqqbdzfbrpfgwsrdglnplpspnnqhtbhzhzgtchcbqcmmcmvlllczqbtmbstzmnlhhhbmmbtjwnbgwjbfhgvfhqlsgdnnrsgghjzjlqfwbbgztdqzbhhwhcwtjwsgstjpzcjjvqbpfpvlqfqshvfzbwmfcwfgqvgmbppfvzgzznzhsqbvzlztsnmnrbgqzbmbhlvqhfncdfcpttgzpvvzdbhvqdtqsblqvrsrnmsfbqhrpvlzffdzptzghvmbmdzjrsqzhqddqm

14
day6/part1.py Normal file
View File

@@ -0,0 +1,14 @@
input = open("./test.txt", "r")
for line in input:
lastFourChar = []
position = 0
for char in line:
position += 1
lastFourChar.append(char)
if (len(lastFourChar) > 3):
# figure out comparison logic here
print(lastFourChar)
if (len(lastFourChar) == 4):
lastFourChar.pop(0)

5
day6/test.txt Normal file
View File

@@ -0,0 +1,5 @@
mjqjpqmgbljsphdztnvjfqwrcgsmlb
bvwbjplbgvbhsrlpgdmjqwftvncz
nppdvjthqldpwncqszvftbrmjlhg
nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg
zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw