28 lines
676 B
Python
28 lines
676 B
Python
|
|
|
|
def read_input(filename):
|
|
sheet = []
|
|
for line in open(filename).read().splitlines():
|
|
sheet.append(list(line))
|
|
return sheet
|
|
|
|
# filename = "day07/example_input" # 21
|
|
filename = "day07/input" # 1560
|
|
sheet = read_input(filename)
|
|
|
|
splits = 0
|
|
for y in range(0,len(sheet)-1): # skip last line
|
|
for x in range(0,len(sheet[y])):
|
|
if sheet[y][x] == "S" or sheet[y][x] == "|":
|
|
# Shoot ray down
|
|
if sheet[y+1][x] == "^": # split
|
|
sheet[y+1][x+1] = "|"
|
|
sheet[y+1][x-1] = "|"
|
|
splits += 1
|
|
else:
|
|
sheet[y+1][x] = "|"
|
|
|
|
|
|
|
|
print(f"Total number of splits: {splits}")
|