### day 5 time tag and alternative solution

This commit is contained in:
parent 203068522e
 `@ -0,0 +1,43 @@` `from collections import defaultdict` ``` ``` ``` ``` `def myrange(x1, y1, x2, y2):` ` while True:` ` yield(x1, y1)` ` if x1 == x2 and y1 == y2:` ` return` ` if x1 != x2:` ` x1 += (1 if x1 <= x2 else -1)` ` if y1 != y2:` ` y1 += (1 if y1 <= y2 else -1)` ``` ``` ``` ``` `with open("input.txt") as f:` ` lines = [i.strip() for i in f.readlines()]` ``` ``` ``` ``` `points = defaultdict(lambda: 0)` ``` ``` `for line in lines:` ` p1, p2 = line.split(" -> ")` ``` ``` ` x1, y1 = p1.split(",")` ` x2, y2 = p2.split(",")` ``` ``` ` x1 = int(x1)` ` y1 = int(y1)` ` x2 = int(x2)` ` y2 = int(y2)` ``` ``` ` # removing this if condition will include diagonal lines, the requirement for part b` ` if x1 == x2 or y1 == y2:` ` for xr, yr in myrange(x1, y1, x2, y2):` ` points[(xr, yr)] += 1` ``` ``` `overlaps = 0` ``` ``` `for point, hits in points.items():` ` if hits > 1:` ` overlaps += 1` ``` ``` `print(overlaps)`
 `@ -49,3 +49,5 @@ for point, hits in points.items():` ` overlaps += 1` ``` ``` `print(overlaps)` ``` ``` `# 26m`