From de308443f4ed4e12cd18578af09b93d7d01e2a84 Mon Sep 17 00:00:00 2001 From: bthink Date: Fri, 12 Dec 2025 12:42:43 +0100 Subject: final week of 2025 --- 2025/aoc2025-d12.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 2025/aoc2025-d12.py (limited to '2025/aoc2025-d12.py') diff --git a/2025/aoc2025-d12.py b/2025/aoc2025-d12.py new file mode 100644 index 0000000..725144c --- /dev/null +++ b/2025/aoc2025-d12.py @@ -0,0 +1,39 @@ +#advent of code 2025 +#day 12 + +part1=0; +gifts=[]; +trees=[]; +ID=None; +PuzzleInput=open("12.in","r"); +for line in PuzzleInput: + line=line.strip(); + if "x" in line: + dimensions, quantities=line.split(": "); + dimensions=tuple([int(d) for d in dimensions.split("x")]); + quantities=[int(q) for q in quantities.split(" ")]; + trees.append((dimensions,quantities)); + elif ID==None: + ID=int(line.replace(":","")); + gifts.append([]); + elif len(line)==0: + ID=None; + else: + gifts[ID].append(list(line)); + +def validateTree(tree,presents): + grid,reqs=tree; + space=grid[0]*grid[1]; + minX,minY=0,0; + for ID,r in enumerate(reqs): + pr=presents[ID]; + dimY=max([pr[j].count("#") for j in range(len(pr))]); + dimX=max( [sum([pr[j][i].count("#") for j in range(len(pr))]) for i in range(len(pr[0]))] ); + minX+=r*dimX; + minY+=r*dimY; + space-=r*dimX*dimY; + return space>0; + +for t in trees: + part1+=1*validateTree(t,gifts); +print("part 1 =",part1); -- cgit v1.2.3