Day 3
This commit is contained in:
parent
e6bcbbf744
commit
290f8d2b4d
1327
aoc-3/inputs.txt
Normal file
1327
aoc-3/inputs.txt
Normal file
File diff suppressed because it is too large
Load Diff
45
aoc-3/main.py
Normal file
45
aoc-3/main.py
Normal file
@ -0,0 +1,45 @@
|
||||
f = open("inputs.txt", "r")
|
||||
inputs = f.read().split('\n')
|
||||
|
||||
claimed = {}
|
||||
|
||||
for s in inputs:
|
||||
split = s.split(' ')
|
||||
|
||||
claimId = split[0]
|
||||
|
||||
coords = split[2].split(',')
|
||||
x = int(coords[0])
|
||||
y = int(coords[1][:-1])
|
||||
|
||||
size = split[3].split('x')
|
||||
xSize = int(size[0])
|
||||
ySize = int(size[1])
|
||||
|
||||
for i in range(x + 1, x + xSize + 1):
|
||||
for j in range(y + 1, y + ySize + 1):
|
||||
if (i, j) in claimed:
|
||||
claimed[(i, j)].append(claimId)
|
||||
else:
|
||||
claimed[(i, j)] = [claimId]
|
||||
|
||||
overlap = 0
|
||||
|
||||
pureClaims = set()
|
||||
impureClaims = set()
|
||||
|
||||
for key, value in claimed.items():
|
||||
if len(value) > 1:
|
||||
overlap += 1
|
||||
for v in value:
|
||||
pureClaims.discard(v)
|
||||
impureClaims.add(v)
|
||||
|
||||
elif value[0] not in impureClaims:
|
||||
pureClaims.add(value[0])
|
||||
|
||||
|
||||
print(f"[Part 1] Overlapping squares: {overlap}")
|
||||
|
||||
if len(pureClaims) == 1:
|
||||
print(f"[Part 2] Non-overlapping claim: {pureClaims.pop()}")
|
Loading…
Reference in New Issue
Block a user