|
|
|
|
|
|
|
|
|
|
|
def count_segs(disp): |
|
|
|
|
|
d_set = set(disp) |
|
|
|
|
|
tot, t_segs = 0, len(d_set) |
|
|
|
|
|
for ltr in d_set: |
|
|
|
|
|
tot += disp.count(ltr) |
|
|
|
|
|
return tot, t_segs |
|
|
|
|
|
|
|
|
|
|
|
true_digits = { |
|
|
|
|
|
"aaaabbcceeffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaabbcceeffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaabbcceeffgggg")[1], |
|
|
|
|
|
"val": 0 |
|
|
|
|
|
}, |
|
|
|
|
|
"ccff": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("ccff")[0], |
|
|
|
|
|
"segs": count_segs("ccff")[1], |
|
|
|
|
|
"val": 1 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaaccddddeegggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaaccddddeegggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaaccddddeegggg")[1], |
|
|
|
|
|
"val": 2 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaaccddddffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaaccddddffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaaccddddffgggg")[1], |
|
|
|
|
|
"val": 3 |
|
|
|
|
|
}, |
|
|
|
|
|
"bbccddddff": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("bbccddddff")[0], |
|
|
|
|
|
"segs": count_segs("bbccddddff")[1], |
|
|
|
|
|
"val": 4 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaabbddddffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaabbddddffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaabbddddffgggg")[1], |
|
|
|
|
|
"val": 5 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaabbddddeeffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaabbddddeeffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaabbddddeeffgggg")[1], |
|
|
|
|
|
"val": 6 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaaccff": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaaccff")[0], |
|
|
|
|
|
"segs": count_segs("aaaaccff")[1], |
|
|
|
|
|
"val": 7 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaabbccddddeeffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaabbccddddeeffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaabbccddddeeffgggg")[1], |
|
|
|
|
|
"val": 8 |
|
|
|
|
|
}, |
|
|
|
|
|
"aaaabbccddddffgggg": |
|
|
|
|
|
{ |
|
|
|
|
|
"len": count_segs("aaaabbccddddffgggg")[0], |
|
|
|
|
|
"segs": count_segs("aaaabbccddddffgggg")[1], |
|
|
|
|
|
"val": 9 |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
|
|
|
|
with open("aoc8-1.txt","r") as file: |
|
|
|
|
|
lines = [line.split("|") for line in file.readlines()] |
|
|
|
|
|
lines = [line[1].strip() for line in lines] |
|
|
|
|
|
digits = [line.split(" ") for line in lines] |
|
|
|
|
|
false_digits = [count_segs(el)[1] for line in digits for el in line] |
|
|
|
|
|
looking_for = [2, 4, 3, 7] |
|
|
|
|
|
counter = len([digit for digit in false_digits if digit in looking_for]) |
|
|
|
|
|
print(counter) |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
|
main() |