#!/usr/bin/env python3 import re lines = (x.strip() for x in open("input.txt")) REG_GAME = re.compile("Game (\d+): (.*)$") MAX_TARGET = {"red": 12, "green": 13, "blue": 14} total = 0 for line in lines: game, content = REG_GAME.match(line).groups() is_possible = True for cube in (y for x in content.split("; ") for y in x.split(", ")): [n, color] = cube.split(" ") if MAX_TARGET[color] < int(n): is_possible = False break if is_possible: total += int(game) print(total)