day2: add python solution

This commit is contained in:
Xiretza 2020-12-02 08:02:49 +01:00
parent 364261047d
commit 693ed4558e
Signed by: xiretza
GPG Key ID: 17B78226F7139993
1 changed files with 22 additions and 0 deletions

22
day2/day2.py Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env python
import re
from collections import Counter
r = re.compile(r'(\d+)-(\d+) (.): (.*)')
def requirements_met_1(min_required, max_required, letter, password):
return min_required <= Counter(password)[letter] <= max_required
def requirements_met_2(first_pos, second_pos, letter, password):
return (password[first_pos-1] == letter) != (password[second_pos-1] == letter)
def do_line(req_func, line):
min_required, max_required, letter, password = r.match(line).groups()
return req_func(int(min_required), int(max_required), letter, password)
if __name__ == '__main__':
with open('input.txt', 'r') as f:
lines = list(f.readlines())
for func in (requirements_met_1, requirements_met_2):
print(len(list(filter(lambda line: do_line(func, line), lines))))