day9.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import os
  2. # from collections import Counter, defaultdict
  3. from itertools import pairwise
  4. with open(os.path.join(os.path.dirname(__file__), "example.txt")) as example:
  5. example_data = example.read().splitlines()
  6. with open(os.path.join(os.path.dirname(__file__), "input.txt")) as example:
  7. input_data = example.read().splitlines()
  8. def diff(seq, r=False):
  9. glob = []
  10. for x, y in pairwise(seq):
  11. if r:
  12. glob.append(x - y)
  13. else:
  14. glob.append(y - x)
  15. return glob
  16. def solve(data, r=False):
  17. seqs = []
  18. for line in data:
  19. seqs.append([int(x) for x in line.split()])
  20. s = []
  21. for seq in seqs:
  22. gop = []
  23. gop.append(seq)
  24. while sum(gop[-1]) != 0:
  25. gop.append(diff(gop[-1], r=r))
  26. if r:
  27. s.append(sum([i[0] for i in gop]))
  28. else:
  29. s.append(sum([i[-1] for i in gop]))
  30. print(r := sum(s))
  31. return r
  32. solve(example_data)
  33. solve(input_data)
  34. solve(example_data, r=True)
  35. solve(input_data, r=True)