-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathday1.py
More file actions
38 lines (31 loc) · 901 Bytes
/
day1.py
File metadata and controls
38 lines (31 loc) · 901 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import regex as re # overlapping does not exists in re module
file = open("input.txt")
lines = file.readlines()
def part1():
num_re = re.compile(r"\d")
_sum = 0
for instruction in lines:
nums = num_re.findall(instruction)
_sum += int(nums[0] + nums[-1])
return _sum
def part2():
numbers = {
"one": "1",
"two": "2",
"three": "3",
"four": "4",
"five": "5",
"six": "6",
"seven": "7",
"eight": "8",
"nine": "9",
}
num_re = re.compile(r"\d|" + r"|".join(numbers.keys()))
_sum = 0
for instruction in lines:
nums = num_re.findall(instruction, overlapped=True) # overlapped is the key (eighthree = 83)
_sum += int(numbers.get(nums[0], nums[0]) + numbers.get(nums[-1], nums[-1]))
return _sum
print("Part 1:", part1())
print("Part 2:", part2())
file.close()