day1.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import re
  2. with open("aoc2023/day1/example.txt") as example:
  3. example = example.readlines()
  4. with open("aoc2023/day1/input.txt") as input:
  5. input = input.readlines()
  6. with open("aoc2023/day1/example2.txt") as example2:
  7. example2 = example2.readlines()
  8. numbers = []
  9. for line in example:
  10. number = ""
  11. for char in line:
  12. if char.isdigit():
  13. number += char
  14. number = number[0] + number[-1]
  15. numbers.append(int(number))
  16. print(sum(numbers))
  17. numbers = []
  18. for line in input:
  19. number = ""
  20. for char in line:
  21. if char.isdigit():
  22. number += char
  23. number = number[0] + number[-1]
  24. numbers.append(int(number))
  25. print(sum(numbers))
  26. mapping = {
  27. "one": "1",
  28. "two": "2",
  29. "three": "3",
  30. "four": "4",
  31. "five": "5",
  32. "six": "6",
  33. "seven": "7",
  34. "eight": "8",
  35. "nine": "9",
  36. }
  37. numbers = []
  38. for line in example2:
  39. number = {}
  40. for ind, char in enumerate(line):
  41. if char.isdigit():
  42. number[ind] = char
  43. for k, v in mapping.items():
  44. if k in line:
  45. number[line.index(k)] = v[0]
  46. number = sorted(number.items())
  47. numbers.append(int(number[0][1] + number[-1][1]))
  48. print(sum(numbers))
  49. numbers = []
  50. for line in input:
  51. number = {}
  52. for ind, char in enumerate(line):
  53. if char.isdigit():
  54. number[ind] = char
  55. for k, v in mapping.items():
  56. if k in line:
  57. for m in re.finditer(k, line):
  58. number[m.start()] = v[0]
  59. number = sorted(number.items())
  60. numbers.append(int(number[0][1] + number[-1][1]))
  61. print(sum(numbers))