Files
aoc/2024/day05.py
2024-12-06 18:41:36 +01:00

100 lines
2.7 KiB
Python

# AOC Day Script Day XX
# Date : 20XX.12.XX
# Python Code
# Developer : David Bandeira
import sys,time
from helpingFunctions import *
setSampleMode(True)
aocDay = identifyDay(sys.argv[0])
aocYear = identifyYear(sys.argv[0])
path = getPath2Data(aocDay,aocYear)
filename = getFilename2Data(aocDay)
def extractData(data):
pageOrdRule=[]
updQueue=[]
dataBreak = False
for dataLine in data:
if len(dataLine) == 0:
dataBreak = True
elif dataBreak == False:
x,y = dataLine.split("|")
pageOrdRule.append([int(x),int(y)])
elif dataBreak== True:
updQueueEntry=[]
for dataInput in dataLine.split(','):
updQueueEntry.append(int(dataInput))
updQueue.append(updQueueEntry)
return [pageOrdRule, updQueue]
def findPageOrdRules(pageOrdRule,inputValue):
pageRules=[]
for pageRule in pageOrdRule:
if pageRule[0]==inputValue or pageRule[1]==inputValue:
pageRules.append(pageRule)
return pageRules
def checkRule(queueValue,queueValueNext,pageRules):
ret= False
for pageRule in pageRules:
if queueValue == pageRule[0] and queueValueNext == pageRule[1]:
ret = True
return ret
def validateQueue(queueList,pageRules,queuePos):
ret = False
queueValue = queueList[queuePos]
queueValueNext = queueList[queuePos+1]
for i in range(queuePos+1,len(queueList)):
return ret
def getOrderedQueues(pageOrdRule, updQueue):
orderedQueues=[]
for queueList in updQueue:
for queuePos in range(len(queueList)-1):
pageRules = findPageOrdRules(pageOrdRule,queueList[queuePos])
validQueue = validateQueueValue(queueList,pageRules,queuePos)
return 0
def taskA (data) -> int:
gameScoreA = 0
pageOrdRule, updQueue = extractData(data)
res = getOrderedQueues(pageOrdRule, updQueue)
return gameScoreA
def taskB (data) -> int:
gameScoreB = 0
return gameScoreB
def task(task: int,data) -> int:
score=0
if task == 1:
score = taskA(data)
elif task == 2:
score = taskB(data)
return score
def main():
showSampleMode()
try:
data = open(path+'/'+filename).read().strip().split('\n')
except:
print ('no inputfile found')
print ('please check file %s on path %s' % (filename, path))
quit()
st=time.time()
print ('Day '+aocDay+': Tasks 1: '+ str(task(1,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
st=time.time()
print ('Day '+aocDay+': Tasks 2: '+ str(task(2,data))+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms')
if __name__ == "__main__":
main()