aoc2020/day02.py
2020-12-02 10:26:00 +01:00

37 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import aoclib
import re
DAY = 2
splitter = re.compile(r'([0-9]+)-([0-9]+) ([a-z]): (.*)')
def part1(test_mode=False):
my_input = aoclib.getInputLineAsArray(day=2, test=test_mode)
valid_count = 0
for line in my_input:
match = re.match(splitter, line)
(min_count, max_count, character, password) = match.group(1, 2, 3, 4)
if int(min_count) <= password.count(character) <= int(max_count):
valid_count = valid_count + 1
return valid_count
def part2(test_mode=False):
my_input = aoclib.getInputLineAsArray(day=2, test=test_mode)
valid_count = 0
for line in my_input:
match = re.match(splitter, line)
(min_count, max_count, character, password) = match.group(1, 2, 3, 4)
if (password[int(min_count) - 1] == character or password[int(max_count) - 1] == character) \
and password[int(min_count) - 1] != password[int(max_count) - 1]:
valid_count = valid_count + 1
return valid_count
if __name__ == '__main__':
aoclib.printSolution(DAY, 1, part1())
aoclib.printSolution(DAY, 2, part2())