From 60b66e6a068f9fe882a4c2e6da60443b051b3ddb Mon Sep 17 00:00:00 2001 From: "marcus@weifer.de" Date: Wed, 14 Dec 2022 15:41:25 +0100 Subject: [PATCH] d4 added -> need part 2 --- day3.py | 1 + day4.py | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ inputs/day4.txt | 26 +++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 day4.py diff --git a/day3.py b/day3.py index 8156d6e..0e6fddc 100644 --- a/day3.py +++ b/day3.py @@ -12,6 +12,7 @@ def part_one(file): + print(f"Part 1: {result}") part_one(file) diff --git a/day4.py b/day4.py new file mode 100644 index 0000000..3e52cdf --- /dev/null +++ b/day4.py @@ -0,0 +1,84 @@ +day = "day4" +file = f"inputs/{day}.txt" + +passp = ["byr","iyr","eyr","hgt","hcl","ecl","pid"] # "cid + +def part_one(file): + result = 0 + input = open(file, "r") + input = input.read() + inputs = input.split("\n\n") + + for item in inputs: + if(check(item)): + result += 1 + + + print(f"Part 1: {result}") + + +def check(item): + bool = True + for ps in passp: + if(ps in item): + continue + else: + bool = False + break + return bool +part_one(file) + + +def part_two(file): + result = 0 + input = open(file, "r") + input = input.read().split("\n\n") + + for line in input: + if line_check(line): + result += 1 + + + print(f"Part 2: {result}") + +def line_check(line): + dict = {} + line = line.replace("\n", " ").split(" ") + bool = True + for code in line: + key_value = code.split(":") + dict[key_value[0]] = key_value[1] + + while bool is not False: + if (int(dict["byr"]) >= 1920) and (int(dict["byr"]) <= 2020): + continue + elif (int(dict["iyr"]) >= 2010) and (int(dict["iyr"]) <= 2020): + continue + elif (int(dict["eyr"]) >= 2020) and (int(dict["eyr"]) <= 2030): + continue + elif ("cm" in dict["hgt"]) or ("in" in dict["hgt"]): + if("cm" in dict["hgt"]): + if (int(dict["hgt"]) >= 150) and (int(dict["hgt"]) <= 193): + continue + elif ("in" in dict["hgt"]): + if (int(dict["hgt"]) >= 59) and (int(dict["hgt"]) <= 76): + continue + else: + bool = False + break + elif (dict["hcl"][0] == '#') and (len(dict["hcl"]) == 6): + continue + elif dict["ecl"] == "amb" or dict["ecl"] == "blu" or dict["ecl"] == "brn" or dict["ecl"] == "gry" or dict["ecl"] == "grn" or dict["ecl"] == "hzl" or dict["ecl"] == "oth": + continue + elif dict["pid"].count() == 9: + continue + else: + bool = False + break + + return bool + + + + +part_two(file) \ No newline at end of file diff --git a/inputs/day4.txt b/inputs/day4.txt index e69de29..e858cd0 100644 --- a/inputs/day4.txt +++ b/inputs/day4.txt @@ -0,0 +1,26 @@ +pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980 +hcl:#623a2f + +eyr:2029 ecl:blu cid:129 byr:1989 +iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm + +hcl:#888785 +hgt:164cm byr:2001 iyr:2015 cid:88 +pid:545766238 ecl:hzl +eyr:2022 + +iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719 + +eyr:1972 cid:100 +hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926 + +iyr:2019 +hcl:#602927 eyr:1967 hgt:170cm +ecl:grn pid:012533040 byr:1946 + +hcl:dab227 iyr:2012 +ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277 + +hgt:59cm ecl:zzz +eyr:2038 hcl:74454a iyr:2023 +pid:3556412378 byr:2007 \ No newline at end of file