Was pretty simple in Python with a regex to get the game number, and then the count of color. for part 2 instead of returning true/false whether the game is valid, you just max the count per color. No traps like in the first one, that I've seen, so it was surprisingly easy
def process_game(line: str):
game_id = int(re.findall(r'game (\d+)*', line)[0])
colon_idx = line.index(":")
draws = line[colon_idx+1:].split(";")
# print(draws)
if is_game_valid(draws):
# print("Game %d is possible"%game_id)
return game_id
return 0
def is_game_valid(draws: list):
for draw in draws:
red = get_nr_of_in_draw(draw, 'red')
if red > MAX_RED:
return False
green = get_nr_of_in_draw(draw, 'green')
if green > MAX_GREEN:
return False
blue = get_nr_of_in_draw(draw, 'blue')
if blue > MAX_BLUE:
return False
return True
def get_nr_of_in_draw(draw: str, color: str):
if color in draw:
nr = re.findall(r'(\d+) '+color, draw)
return int(nr[0])
return 0
# f = open("input.txt", "r")
f = open("input_real.txt", "r")
lines = f.readlines()
sum = 0
for line in lines:
sum += process_game(line.strip().lower())
print("Answer: %d"%sum)
If our content gets federated to threads then it just means that google results will point to it first rather than to us, they will probably have better indexing and search features than the fediverse. People will also probably think the content originated on threads too (since that's where they see it and threads could easily obfuscate info like that) instead of who actually made it.
It could increase the short term engagement but in the long run, it will just serve to make threads better.