From 0bf180482ba1e50057091e844ec7f44b9a0f9cc2 Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 6 Dec 2022 19:39:49 +0100 Subject: [PATCH] [py] Port 2017_04 --- py/2017/04/solve.py | 36 ------------------------------------ py/aoc/__init__.py | 3 ++- py/aoc/y2017/d04.py | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 37 deletions(-) delete mode 100644 py/2017/04/solve.py create mode 100644 py/aoc/y2017/d04.py diff --git a/py/2017/04/solve.py b/py/2017/04/solve.py deleted file mode 100644 index 694c594..0000000 --- a/py/2017/04/solve.py +++ /dev/null @@ -1,36 +0,0 @@ -import collections -import sys - -# PART 1 - -def load_phrases(filename): - phrases = [] - with open(filename, "r") as f: - for line in f: - phrase = line[:-1].split(" ") - phrases.append(phrase) - return phrases - -def is_valid(phrase): - return len(phrase) == len(set(phrase)) - -def count(what, when): - return len(list(filter(when, what))) - -# PART 2 - -def is_valid_2(phrase): - phrase = ["".join(sorted(word)) for word in phrase] - return len(phrase) == len(set(phrase)) - -def main(filename): - print(f"Solutions for {filename}") - phrases = load_phrases(filename) - correct = count(phrases, is_valid) - print(f"Part 1: {correct}") - correct_2 = count(phrases, is_valid_2) - print(f"Part 2: {correct_2}") - -if __name__ == "__main__": - for filename in sys.argv[1:]: - main(filename) diff --git a/py/aoc/__init__.py b/py/aoc/__init__.py index 3b5c43b..582eb72 100644 --- a/py/aoc/__init__.py +++ b/py/aoc/__init__.py @@ -2,7 +2,7 @@ import sys import argparse from pathlib import Path -from .y2017 import d01, d02, d03 +from .y2017 import d01, d02, d03, d04 from .y2018 import d01, d02, d03, d04, d05, d06, d07, d08, d09, d10, d11 from .y2020 import d10 from .y2021 import d14 @@ -12,6 +12,7 @@ DAYS = { "2017_01": y2017.d01.solve, "2017_02": y2017.d02.solve, "2017_03": y2017.d03.solve, + "2017_04": y2017.d04.solve, "2018_01": y2018.d01.solve, "2018_02": y2018.d02.solve, "2018_03": y2018.d03.solve, diff --git a/py/aoc/y2017/d04.py b/py/aoc/y2017/d04.py new file mode 100644 index 0000000..e0bd5c6 --- /dev/null +++ b/py/aoc/y2017/d04.py @@ -0,0 +1,35 @@ +import collections + +# PART 1 + + +def load_phrases(inputstr): + phrases = [] + for line in inputstr.splitlines(): + phrase = line.split(" ") + phrases.append(phrase) + return phrases + + +def is_valid(phrase): + return len(phrase) == len(set(phrase)) + + +def count(what, when): + return len(list(filter(when, what))) + + +# PART 2 + + +def is_valid_2(phrase): + phrase = ["".join(sorted(word)) for word in phrase] + return len(phrase) == len(set(phrase)) + + +def solve(inputstr): + phrases = load_phrases(inputstr) + correct = count(phrases, is_valid) + print(f"Part 1: {correct}") + correct_2 = count(phrases, is_valid_2) + print(f"Part 2: {correct_2}")