d4 added -> need part 2
This commit is contained in:
parent
088b28da08
commit
60b66e6a06
84
day4.py
Normal file
84
day4.py
Normal file
|
@ -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)
|
|
@ -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
|
Loading…
Reference in New Issue
Block a user