Compare commits
3 Commits
a304953805
...
ab0cfb8f80
Author | SHA1 | Date |
---|---|---|
kwout | ab0cfb8f80 | 2 years ago |
kwout | 86f254d272 | 2 years ago |
kwout | 171dff6e72 | 2 years ago |
3 changed files with 52 additions and 43 deletions
@ -0,0 +1,41 @@ |
||||
lines = [] |
||||
for l in open("input.txt", 'r').read().splitlines(): |
||||
p = l.split(" -> ") |
||||
q = [] |
||||
q.append(p[0].split(",")) |
||||
q.append(p[1].split(",")) |
||||
lines.append([[int(q[0][0]),int(q[0][1])],[int(q[1][0]), int(q[1][1])]]) |
||||
grid = [[0 for i in range(1000)] for j in range(1000)] |
||||
gridAll = [[0 for i in range(1000)] for j in range(1000)] |
||||
overlaps = 0 |
||||
overlapsAll = 0 |
||||
|
||||
for l in lines: |
||||
xDir = 0 |
||||
yDir = 0 |
||||
if l[0][0] > l[1][0]: |
||||
xDir = -1 |
||||
if l[0][0] < l[1][0]: |
||||
xDir = 1 |
||||
if l[0][1] > l[1][1]: |
||||
yDir = -1 |
||||
if l[0][1] < l[1][1]: |
||||
yDir = 1 |
||||
if xDir == 0: |
||||
for i in range(l[0][1],l[1][1]+yDir,yDir): |
||||
grid[l[0][0]][i] += 1 |
||||
if grid[l[0][0]][i] == 2: |
||||
overlaps += 1 |
||||
if yDir == 0: |
||||
for i in range(l[0][0],l[1][0]+xDir,xDir): |
||||
grid[i][l[0][1]] += 1 |
||||
if grid[i][l[0][1]] == 2: |
||||
overlaps += 1 |
||||
for i in range(0, max([abs(l[1][0]-l[0][0]),abs(l[1][1]-l[0][1])])+1): |
||||
gridAll[l[0][0]+i*xDir][l[0][1]+i*yDir] += 1 |
||||
if gridAll[l[0][0]+i*xDir][l[0][1]+i*yDir] == 2: |
||||
overlapsAll += 1 |
||||
|
||||
|
||||
print(overlaps) |
||||
print(overlapsAll) |
@ -1,27 +0,0 @@ |
||||
lines = [] |
||||
for l in open("input.txt", 'r').read().splitlines(): |
||||
p = l.split(" -> ") |
||||
q = [] |
||||
q.append(p[0].split(",")) |
||||
q.append(p[1].split(",")) |
||||
lines.append([[int(q[0][0]),int(q[0][1])],[int(q[1][0]), int(q[1][1])]]) |
||||
grid = [[0 for i in range(1000)] for j in range(1000)] |
||||
|
||||
for l in lines: |
||||
if l[0][0] == l[1][0]: |
||||
if l[0][1] > l[1][1]: |
||||
l = (l[1],l[0]) |
||||
for i in range(l[0][1], l[1][1]+1): |
||||
grid[l[0][0]][i] += 1 |
||||
if l[0][1] == l[1][1]: |
||||
if l[0][0] > l[1][0]: |
||||
l = (l[1],l[0]) |
||||
for i in range(l[0][0], l[1][0]+1): |
||||
grid[i][l[0][1]] += 1 |
||||
|
||||
overlaps=0 |
||||
for m in grid: |
||||
for n in m: |
||||
if n > 1: |
||||
overlaps += 1 |
||||
print(overlaps) |
Loading…
Reference in new issue