day7.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import os
  2. with open(os.path.join(os.path.dirname(__file__), "example.txt")) as example:
  3. example_data = example.read().splitlines()
  4. with open(os.path.join(os.path.dirname(__file__), "input.txt")) as example:
  5. input_data = example.read().splitlines()
  6. def part1(data):
  7. triangle = []
  8. splits = 0
  9. triangle = [0] * len(data[0])
  10. for row in data:
  11. for i in range(len(data[0]) - 1):
  12. if row[i] == "S":
  13. triangle[i] = 1
  14. if row[i] == "^":
  15. if triangle[i] == 1:
  16. triangle[i] = 0
  17. splits += 1
  18. if triangle[i - 1] == 0:
  19. triangle[i - 1] += 1
  20. if triangle[i + 1] == 0:
  21. triangle[i + 1] += 1
  22. print(f"Part1: {splits=}")
  23. def part2(data):
  24. triangle = [0] * len(data[0])
  25. for row in data:
  26. for i in range(len(data[0]) - 1):
  27. if row[i] == "S":
  28. triangle[i] = 1
  29. if row[i] == "^":
  30. if triangle[i] != 0:
  31. triangle[i - 1] += triangle[i]
  32. triangle[i + 1] += triangle[i]
  33. triangle[i] = 0
  34. print(f"Part1: worlds={sum(triangle)}")
  35. part1(example_data)
  36. part1(input_data)
  37. part2(example_data)
  38. part2(input_data)