Update day 5 solution
This commit is contained in:
@@ -13,12 +13,10 @@ def part_1(input):
|
|||||||
for line in input:
|
for line in input:
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
x1,y1,x2,y2 = parse_line(line)
|
x1,y1,x2,y2 = parse_line(line)
|
||||||
if y1 == y2:
|
if x1 == x2 or y1 == y2:
|
||||||
for x in range(min(x1,x2), max(x1,x2) + 1):
|
for x in range(min(x1,x2), max(x1,x2) + 1):
|
||||||
field[x][y1] += 1
|
|
||||||
elif x1 == x2:
|
|
||||||
for y in range(min(y1,y2), max(y1,y2) + 1):
|
for y in range(min(y1,y2), max(y1,y2) + 1):
|
||||||
field[x1][y] += 1
|
field[x][y] += 1
|
||||||
for x in range(1000):
|
for x in range(1000):
|
||||||
for y in range(1000):
|
for y in range(1000):
|
||||||
if field[x][y] >= 2:
|
if field[x][y] >= 2:
|
||||||
@@ -32,7 +30,11 @@ def part_2(input):
|
|||||||
for line in input:
|
for line in input:
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
x1,y1,x2,y2 = parse_line(line)
|
x1,y1,x2,y2 = parse_line(line)
|
||||||
if abs(x1 - x2) == abs(y1 - y2):
|
if x1 == x2 or y1 == y2:
|
||||||
|
for x in range(min(x1,x2), max(x1,x2) + 1):
|
||||||
|
for y in range(min(y1,y2), max(y1,y2) + 1):
|
||||||
|
field[x][y] += 1
|
||||||
|
elif abs(x1 - x2) == abs(y1 - y2):
|
||||||
dx = 1
|
dx = 1
|
||||||
if x1 > x2:
|
if x1 > x2:
|
||||||
dx = -1
|
dx = -1
|
||||||
@@ -41,12 +43,6 @@ def part_2(input):
|
|||||||
dy = -1
|
dy = -1
|
||||||
for n in range(abs(x1 - x2) + 1):
|
for n in range(abs(x1 - x2) + 1):
|
||||||
field[x1 + (dx * n)][y1 + (dy * n)] += 1
|
field[x1 + (dx * n)][y1 + (dy * n)] += 1
|
||||||
elif y1 == y2:
|
|
||||||
for x in range(min(x1,x2), max(x1,x2) + 1):
|
|
||||||
field[x][y1] += 1
|
|
||||||
elif x1 == x2:
|
|
||||||
for y in range(min(y1,y2), max(y1,y2) + 1):
|
|
||||||
field[x1][y] += 1
|
|
||||||
for x in range(1000):
|
for x in range(1000):
|
||||||
for y in range(1000):
|
for y in range(1000):
|
||||||
if field[x][y] >= 2:
|
if field[x][y] >= 2:
|
||||||
|
|||||||
Reference in New Issue
Block a user