Advent of Code Day 3
03 Dec 2018Day 3 of Advent of Code1.
This is kind of a mess. I was really rushing to try to see if I could land on the leaderboard at least once this year.
import re
pattern = re.compile(
"""
\#
(?P<claim>.*?)
\s@\s
(?P<left>.*?)
,
(?P<top>.*?)
:\s
(?P<x>.*?)
[x]
(?P<y>.*?)
$
""", re.VERBOSE)
matches = []
for line in open("input3.txt"):
match = pattern.match(line)
claim = int(match.group('claim'))
top = int(match.group('top'))
left = int(match.group('left'))
x = int(match.group('x'))
y = int(match.group('y'))
matches.append({"top": top, "left": left, "x": x, "y": y})
c = set()
collide = set()
for match in matches:
for i in range(match['left'],match['left']+match['x']):
for j in range(match['top'],match['top']+match['y']):
if (i,j) in c:
collide.add((i,j))
c.add((i,j))
print(len(collide))
for match in matches:
found = True
for i in range(match['left'],match['left']+match['x']):
for j in range(match['top'],match['top']+match['y']):
if (i,j) in collide:
found = False
if found:
print(claim)