From da1680745715553b389e263b610e9f07439e96f0 Mon Sep 17 00:00:00 2001 From: David Bandeira Date: Sat, 7 Dec 2024 18:22:30 +0100 Subject: [PATCH] 2015 / Day 11 --- 2015/{ => data/day11}/day11a.py | 0 2015/day12.py | 23 +++++++++++++++++++---- yearTemplate/dayXX.py | 9 +++++---- 3 files changed, 24 insertions(+), 8 deletions(-) rename 2015/{ => data/day11}/day11a.py (100%) diff --git a/2015/day11a.py b/2015/data/day11/day11a.py similarity index 100% rename from 2015/day11a.py rename to 2015/data/day11/day11a.py diff --git a/2015/day12.py b/2015/day12.py index ab26498..4185195 100644 --- a/2015/day12.py +++ b/2015/day12.py @@ -5,6 +5,7 @@ import sys,time,re from helpingFunctions import * +import json setSampleMode(False) @@ -13,16 +14,30 @@ aocYear = identifyYear(sys.argv[0]) path = getPath2Data(aocDay,aocYear) filename = getFilename2Data(aocDay) - + +def n(json): + if type(json) == int: + return json + if type(json) == list: + return sum([n(json) for json in json]) + if type(json) != dict: + return 0 + if 'red' in json.values(): + return 0 + return n(list(json.values())) + def taskA (data) -> int: gameScoreA = 0 - dataValue = re.findall(r'-[0-9]*||[0-9]*',data[0]) - for lineValue in dataValue: - gameScoreA = gameScoreA+ int(lineValue) + for dataLine in data: + dataValues = re.findall('(-?\d+)',dataLine) + for dataValue in dataValues: + gameScoreA = gameScoreA+ int(dataValue) return gameScoreA def taskB (data) -> int: gameScoreB = 0 + for dataLine in data: + gameScoreB = gameScoreB+ n(json.loads(dataLine)) return gameScoreB def task(task: int,data) -> int: diff --git a/yearTemplate/dayXX.py b/yearTemplate/dayXX.py index e57c061..0285f66 100644 --- a/yearTemplate/dayXX.py +++ b/yearTemplate/dayXX.py @@ -16,11 +16,12 @@ filename = getFilename2Data(aocDay) def taskA (data) -> int: gameScoreA = 0 - return gameScoreA + return gameScoreA def taskB (data) -> int: + st=time.time() gameScoreB = 0 - return gameScoreB + return gameScoreB def task(task: int,data) -> int: score=0 @@ -39,9 +40,9 @@ def main(): 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') + print ('Day '+aocDay+': Tasks 1: '+ str(task(1,data)[0])+ ' 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') + print ('Day '+aocDay+': Tasks 2: '+ str(task(2,data)[0])+ ' executation time: ' + str(int((time.time()-st)*1000)) + 'ms') if __name__ == "__main__": main() \ No newline at end of file