-
Notifications
You must be signed in to change notification settings - Fork 0
/
day-2.1.py
30 lines (21 loc) · 781 Bytes
/
day-2.1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from functools import reduce
data = None
with open("input.txt",encoding="utf-8") as inpf:
data = inpf.read().split("\n")
def check_cubes(games_data):
game_result = { "red":0, "green":0, "blue":0 }
for game_data in games_data.split(";"):
for x in game_data.split(","):
x = x.strip()
if x:
cnt,col = x.split()
game_result[col] = max(int(cnt),game_result[col])
return game_result["red"] <= 12 and game_result["green"] <= 13 and game_result["blue"] <= 14
colors = ["red", "green", "blue"]
games = {}
for d in data:
game_id, games_data = d.split(":")
game_id = game_id.strip().split(" ")[1].strip()
games[game_id] = check_cubes(games_data)
answer = reduce(lambda x,v : x + (int(v) if games[v] else 0),games.keys(),0)
print(answer)