Advertisement
Dojnaz

AoC Day4

Dec 17th, 2018
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. import re
  2.  
  3. #Läs och rengör input
  4. with open("input.txt", "r") as f:
  5.     lines = f.read().splitlines()
  6. g = {}
  7. id = 0
  8. falls = 0
  9. for line in sorted(lines)
  10.     if "Guard" in line:
  11.         id = int(re.findall("#(\d+)", line)[0])
  12.         if id not in g:
  13.             g[id] = [0] * 59
  14.         continue
  15.     mins = int(re.findall(":(\d+)\]", line)[0])
  16.     if "falls asleep" in line:
  17.         falls = mins
  18.     else:
  19.         for m in range(falls, mins):
  20.             g[id][m] += 1
  21.  
  22. #Del 1
  23. def p1(g):
  24.     _, gID = max((sum(minss), gg) for (gg, minss) in g.items())
  25.     _, cm = max((m, idx) for (idx, m) in enumerate(g[gID]))
  26.     return gID * cm
  27.  
  28. #Del 2
  29. def p2(g)
  30.     _, cm, gID = max((mins, idx, gg) for (gg, minss) in g.items() for (idx, mins) in enumerate(minss))
  31.     return gID * cm
  32.  
  33. print(p1(g))
  34. print(p2(g))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement