diff options
| author | bthink <bthink@fake.com> | 2025-12-12 12:42:43 +0100 |
|---|---|---|
| committer | bthink <bthink@fake.com> | 2025-12-12 12:42:43 +0100 |
| commit | de308443f4ed4e12cd18578af09b93d7d01e2a84 (patch) | |
| tree | e8977d445fe6a86b45dfc8bec8aa46b1fddde76c /2025/aoc2025-d12.py | |
| parent | ed395fe7a7fd68f6db4ea94de8fdcdcb0fac5179 (diff) | |
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); |
