| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import re
- with open("aoc2023/day1/example.txt") as example:
- example = example.readlines()
- with open("aoc2023/day1/input.txt") as input:
- input = input.readlines()
- with open("aoc2023/day1/example2.txt") as example2:
- example2 = example2.readlines()
- numbers = []
- for line in example:
- number = ""
- for char in line:
- if char.isdigit():
- number += char
- number = number[0] + number[-1]
- numbers.append(int(number))
- print(sum(numbers))
- numbers = []
- for line in input:
- number = ""
- for char in line:
- if char.isdigit():
- number += char
- number = number[0] + number[-1]
- numbers.append(int(number))
- print(sum(numbers))
- mapping = {
- "one": "1",
- "two": "2",
- "three": "3",
- "four": "4",
- "five": "5",
- "six": "6",
- "seven": "7",
- "eight": "8",
- "nine": "9",
- }
- numbers = []
- for line in example2:
- number = {}
- for ind, char in enumerate(line):
- if char.isdigit():
- number[ind] = char
- for k, v in mapping.items():
- if k in line:
- number[line.index(k)] = v[0]
- number = sorted(number.items())
- numbers.append(int(number[0][1] + number[-1][1]))
- print(sum(numbers))
- numbers = []
- for line in input:
- number = {}
- for ind, char in enumerate(line):
- if char.isdigit():
- number[ind] = char
- for k, v in mapping.items():
- if k in line:
- for m in re.finditer(k, line):
- number[m.start()] = v[0]
- number = sorted(number.items())
- numbers.append(int(number[0][1] + number[-1][1]))
- print(sum(numbers))
|