You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

aoc8-1.py 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. def count_segs(disp):
  2. d_set = set(disp)
  3. tot, t_segs = 0, len(d_set)
  4. for ltr in d_set:
  5. tot += disp.count(ltr)
  6. return tot, t_segs
  7. true_digits = {
  8. "aaaabbcceeffgggg":
  9. {
  10. "len": count_segs("aaaabbcceeffgggg")[0],
  11. "segs": count_segs("aaaabbcceeffgggg")[1],
  12. "val": 0
  13. },
  14. "ccff":
  15. {
  16. "len": count_segs("ccff")[0],
  17. "segs": count_segs("ccff")[1],
  18. "val": 1
  19. },
  20. "aaaaccddddeegggg":
  21. {
  22. "len": count_segs("aaaaccddddeegggg")[0],
  23. "segs": count_segs("aaaaccddddeegggg")[1],
  24. "val": 2
  25. },
  26. "aaaaccddddffgggg":
  27. {
  28. "len": count_segs("aaaaccddddffgggg")[0],
  29. "segs": count_segs("aaaaccddddffgggg")[1],
  30. "val": 3
  31. },
  32. "bbccddddff":
  33. {
  34. "len": count_segs("bbccddddff")[0],
  35. "segs": count_segs("bbccddddff")[1],
  36. "val": 4
  37. },
  38. "aaaabbddddffgggg":
  39. {
  40. "len": count_segs("aaaabbddddffgggg")[0],
  41. "segs": count_segs("aaaabbddddffgggg")[1],
  42. "val": 5
  43. },
  44. "aaaabbddddeeffgggg":
  45. {
  46. "len": count_segs("aaaabbddddeeffgggg")[0],
  47. "segs": count_segs("aaaabbddddeeffgggg")[1],
  48. "val": 6
  49. },
  50. "aaaaccff":
  51. {
  52. "len": count_segs("aaaaccff")[0],
  53. "segs": count_segs("aaaaccff")[1],
  54. "val": 7
  55. },
  56. "aaaabbccddddeeffgggg":
  57. {
  58. "len": count_segs("aaaabbccddddeeffgggg")[0],
  59. "segs": count_segs("aaaabbccddddeeffgggg")[1],
  60. "val": 8
  61. },
  62. "aaaabbccddddffgggg":
  63. {
  64. "len": count_segs("aaaabbccddddffgggg")[0],
  65. "segs": count_segs("aaaabbccddddffgggg")[1],
  66. "val": 9
  67. },
  68. }
  69. def main():
  70. with open("aoc8-1.txt","r") as file:
  71. lines = [line.split("|") for line in file.readlines()]
  72. lines = [line[1].strip() for line in lines]
  73. digits = [line.split(" ") for line in lines]
  74. false_digits = [count_segs(el)[1] for line in digits for el in line]
  75. looking_for = [2, 4, 3, 7]
  76. counter = len([digit for digit in false_digits if digit in looking_for])
  77. print(counter)
  78. if __name__ == "__main__":
  79. main()