-
Notifications
You must be signed in to change notification settings - Fork 1
/
day02.py
47 lines (32 loc) · 873 Bytes
/
day02.py
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
39
40
41
42
43
44
45
46
47
with open("inputs/day2.txt") as file:
data = [line for line in file]
# Part 1 ===
part1 = 0
for entry in data:
entry = entry.split()
numbers = entry[0].split(sep="-")
minimum = int(numbers[0])
maximum = int(numbers[1])
letter = entry[1][0]
password = entry[2]
if minimum <= password.count(letter) <= maximum:
part1 += 1
# Part 2 ===
part2 = 0
for entry in data:
entry = entry.split()
numbers = entry[0].split(sep="-")
pos1 = int(numbers[0])-1
pos2 = int(numbers[1])-1
letter = entry[1][0]
password = entry[2]
first = password[pos1] == letter
second = password[pos2] == letter
# XOR
if first ^ second:
part2 += 1
# Different options for XOR:
# (first and not second) or (second and not first)
# first != second
print("Part 1:", part1)
print("Part 2:", part2)