|
|
|
@ -0,0 +1,51 @@ |
|
|
|
import re |
|
|
|
|
|
|
|
def file_to_string(file_path): |
|
|
|
f = open(file_path, "r") |
|
|
|
string = f.read() |
|
|
|
f.close() |
|
|
|
return string |
|
|
|
|
|
|
|
def split_on_empty_lines(string): |
|
|
|
return re.split(r"(?:\r?\n){2,}", string.strip()) |
|
|
|
|
|
|
|
def remove_newlines(splitted_string): |
|
|
|
newlist = [] |
|
|
|
for i in splitted_string: |
|
|
|
i = i.replace('\r', '').replace('\n', '') |
|
|
|
newlist.append(i) |
|
|
|
return newlist |
|
|
|
|
|
|
|
def compare_j_value(j): |
|
|
|
if j == 7: |
|
|
|
return "Valid" |
|
|
|
else: |
|
|
|
return "Invalid" |
|
|
|
|
|
|
|
def find_attributes(newlines_removed): |
|
|
|
newlist = [] |
|
|
|
for i in newlines_removed: |
|
|
|
j = 0 |
|
|
|
if "byr:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "iyr:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "eyr:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "hgt:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "hcl:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "ecl:" in i: |
|
|
|
j = j + 1 |
|
|
|
if "pid:" in i: |
|
|
|
j = j + 1 |
|
|
|
newlist.append(compare_j_value(j)) |
|
|
|
return newlist |
|
|
|
|
|
|
|
string = file_to_string("day4input.txt") |
|
|
|
splitted_string = split_on_empty_lines(string) |
|
|
|
newlines_removed = remove_newlines(splitted_string) |
|
|
|
list_of_valids_invalids = find_attributes(newlines_removed) |
|
|
|
print(list_of_valids_invalids) |
|
|
|
print(list_of_valids_invalids.count("Valid")) |