day 3
This commit is contained in:
parent
e9b71955f9
commit
5c997bb158
2 changed files with 29 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
*.in
|
||||
*.ex
|
||||
|
|
28
day03.py
Normal file
28
day03.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
import fileinput
|
||||
|
||||
input = [s.strip() for s in fileinput.input()]
|
||||
part1, part2 = 0, 0
|
||||
|
||||
|
||||
def prio(x):
|
||||
if x.islower():
|
||||
return ord(x) - ord("a") + 1
|
||||
else:
|
||||
return ord(x) - ord("A") + 27
|
||||
|
||||
|
||||
for line in input:
|
||||
first = set(line[: len(line) // 2])
|
||||
second = set(line[len(line) // 2 :])
|
||||
both = (first & second).pop()
|
||||
part1 += prio(both)
|
||||
|
||||
|
||||
for i in range(0, len(input), 3):
|
||||
x = set(input[i])
|
||||
y = set(input[i + 1])
|
||||
z = set(input[i + 2])
|
||||
overlap = (x & y & z).pop()
|
||||
part2 += prio(overlap)
|
||||
|
||||
print(part1, part2)
|
Loading…
Reference in a new issue