initial commit

This commit is contained in:
s-prechtl 2022-12-09 08:29:06 +01:00
commit 27fe77bbe1
134 changed files with 21939 additions and 0 deletions

66
2021/Day5/Day5.py Normal file
View file

@ -0,0 +1,66 @@
from Line import Line
def getHighestIndixes(lines: [Line]):
currMaxX = 0
currMaxY = 0
for line in lines:
currMaxX = max(currMaxX, max(line.start.x, line.end.x) + 1)
currMaxY = max(currMaxX, max(line.start.y, line.end.y) + 1)
return currMaxX, currMaxY
def part1(lines: [Line], arraySize: []):
area = []
for x in range(arraySize[0]):
area.append([])
area[x] = []
for y in range(arraySize[1]):
area[x].append(0)
for line in lines:
if line.axis == "X":
for y in range(min(line.start.y, line.end.y), max(line.start.y, line.end.y) + 1):
area[line.start.x][y] += 1
elif line.axis == "Y":
for x in range(min(line.start.x, line.end.x), max(line.start.x, line.end.x) + 1):
area[x][line.start.y] += 1
elif line.axis == "DIAG":
if line.start.x > line.end.x:
y = line.end.y
else:
y = line.start.y
if y < max(line.start.y, line.end.y):
op = 1
else:
op = -1
for x in range(min(line.start.x, line.end.x), max(line.start.x, line.end.x) + 1):
area[x][y] += 1
y += op
danger = 0
for row in area:
for val in row:
if val > 1:
danger += 1
return danger
if __name__ == '__main__':
lines = []
with open("input.txt", "r") as f:
raw = [x.strip() for x in f.readlines()]
for i in raw:
inp = i.replace(" -> ", ", ")
vals = [int(x) for x in inp.split(",")]
lines.append(Line(vals[0], vals[1], vals[2], vals[3]))
if lines[-1].axis == "INVALID":
lines.pop(-1)
print(part1(lines, getHighestIndixes(lines)))