diff options
Diffstat (limited to '2025/aoc2025-d12.py')
| -rw-r--r-- | 2025/aoc2025-d12.py | 39 |
1 files changed, 39 insertions, 0 deletions
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); |
