advent-of-code/2015-python/solutions/day_05.py
Anders Englöf Ytterström 28af87c00b Add the initial 2015 days in Python
These are already done in Elixir, so this is
just done for the flex.

Also, coming from Day 16-18 from 2023 calendar,
it is safe to say 2015 puzzles are easier and more
manageable.
2023-12-19 23:55:47 +01:00

39 lines
938 B
Python

import re
from solutions import BaseSolution
class Solution(BaseSolution):
input_file = "05.txt"
def __str__(self):
return "Day 5: Doesn't He Have Intern-Elves For This?"
def solve(self, pi):
return self._solve(pi)[0]
def solve_again(self, pi):
return self._solve(pi)[1]
def parse_input(self, data):
return data.strip()
def _solve(self, pi):
wl = pi.split()
p1 = sum(
not re.search(r"ab|cd|pq|xy.*", w)
and any(w[i] == w[i + 1] for i in range(len(w) - 1))
and len(re.findall(r"[aeiou]", w)) > 2
for w in wl
)
p2 = sum(
any(w.count(w[i : i + 2]) == 2 for i in range(len(w) - 1))
and any(w[i] == w[i + 2] for i in range(len(w) - 2))
for w in wl
)
return p1, p2
if __name__ == "__main__":
solution = Solution()
solution.show_results()