From 7ced6f10a73a5922a096fb05426ace6c5ab32a84 Mon Sep 17 00:00:00 2001 From: kwout Date: Thu, 8 Sep 2022 16:40:26 -0400 Subject: [PATCH] solve 8a and 8b in one file --- 2021/day8/8.py | 61 ++++++++++++++++++++++++++++++++++++++ 2021/day8/input.txt.sample | 10 +++++++ 2 files changed, 71 insertions(+) create mode 100644 2021/day8/8.py create mode 100644 2021/day8/input.txt.sample diff --git a/2021/day8/8.py b/2021/day8/8.py new file mode 100644 index 0000000..9beecaa --- /dev/null +++ b/2021/day8/8.py @@ -0,0 +1,61 @@ +entries = open("input.txt", 'r').read().splitlines() + +summa = 0 +count = 0 +for e in entries: + digits = e.split(" | ")[0].split() + output = e.split(" | ")[1].split() + dic = [set() for i in range(10)] + counts = {'a':0,'b':0,'c':0,'d':0,'e':0,'f':0,'g':0} + for s in digits: + if len(s) == 4: + dic[4].update(set(s)) + elif len(s) == 2: + dic[1].update(set(s)) + elif len(s) == 3: + dic[7].update(set(s)) + elif len(s) == 7: + dic[8].update(set(s)) + for l in s: + counts[l] += 1 + for l in counts: + if counts[l] == 9: + for i in range(10): + if i not in [1,2,4,7,8]: + dic[i].add(l) + elif counts[l] == 6: + for i in range(10): + if i not in [1,2,3,4,7,8]: + dic[i].add(l) + elif counts[l] == 4: + for i in range(10): + if i not in [1,4,7,8,3,5,9]: + dic[i].add(l) + elif l in dic[7] and l not in dic[4]: + for i in range(10): + if i not in [1,4,7,8]: + dic[i].add(l) + elif counts[l] == 8: + for i in range(10): + if i not in [1,4,7,8,5,6]: + dic[i].add(l) + elif counts[l] == 7 and l in dic[4]: + for i in range(10): + if i not in [1,4,7,8,0]: + dic[i].add(l) + else: + for i in range(10): + if i not in [1,4,7,8,]: + dic[i].add(l) + + for o in range(4): + for d in dic: + if set(output[o]) == d: + index = dic.index(d) + summa += index*10**(3-o) + if index in [1,4,7,8]: + count += 1 + +print(count) +print(summa) + diff --git a/2021/day8/input.txt.sample b/2021/day8/input.txt.sample new file mode 100644 index 0000000..c9f629b --- /dev/null +++ b/2021/day8/input.txt.sample @@ -0,0 +1,10 @@ +be cfbegad cbdgef fgaecd cgeb fdcge agebfd fecdb fabcd edb | fdgacbe cefdb cefbgd gcbe +edbfga begcd cbg gc gcadebf fbgde acbgfd abcde gfcbed gfec | fcgedb cgb dgebacf gc +fgaebd cg bdaec gdafb agbcfd gdcbef bgcad gfac gcb cdgabef | cg cg fdcagb cbg +fbegcd cbd adcefb dageb afcb bc aefdc ecdab fgdeca fcdbega | efabcd cedba gadfec cb +aecbfdg fbg gf bafeg dbefa fcge gcbea fcaegb dgceab fcbdga | gecf egdcabf bgf bfgea +fgeab ca afcebg bdacfeg cfaedg gcfdb baec bfadeg bafgc acf | gebdcfa ecba ca fadegcb +dbcfg fgd bdegcaf fgec aegbdf ecdfab fbedc dacgb gdcebf gf | cefg dcbef fcge gbcadfe +bdfegc cbegaf gecbf dfcage bdacg ed bedf ced adcbefg gebcd | ed bcgafe cdgba cbgef +egadfb cdbfeg cegd fecab cgb gbdefca cg fgcdab egfdb bfceg | gbdfcae bgc cg cgb +gcafb gcf dcaebfg ecagb gf abcdeg gaef cafbge fdbac fegbdc | fgae cfgab fg bagce