diff options
Diffstat (limited to '')
-rwxr-xr-x | prog/aoc/23/2/1.py | 39 | ||||
-rw-r--r-- | prog/aoc/23/2/in.txt | 5 |
2 files changed, 44 insertions, 0 deletions
diff --git a/prog/aoc/23/2/1.py b/prog/aoc/23/2/1.py new file mode 100755 index 0000000..db1ec3a --- /dev/null +++ b/prog/aoc/23/2/1.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +def game_parser(line): + index = int(line.split(": ")[0].split(" ")[1]) + pullouts = [] + maxr = 0 + maxg = 0 + maxb = 0 + for pullout in line.split(": ")[1].split("; "): + colordict = {} + for color in pullout.split(", "): + colordict[color.split(" ")[1]] = int(color.split(" ")[0]) + r = 0 + g = 0 + b = 0 + if "red" in colordict.keys(): + r = colordict["red"] + if colordict["red"] > maxr: + maxr = colordict["red"] + if "green" in colordict.keys(): + g = colordict["green"] + if colordict["green"] > maxg: + maxg = colordict["green"] + if "blue" in colordict.keys(): + b = colordict["blue"] + if colordict["blue"] > maxb: + maxb = colordict["blue"] + pullouts.append((r, g, b)) + return (index, (maxr, maxg, maxb), pullouts) +sumindexes = 0 +sumpowers = 0 +try: + while True: + game = game_parser(input()) + if game[1][0] <= 12 and game[1][1] <= 13 and game[1][2] <= 14: + sumindexes += game[0] + sumpowers += game[1][0] * game[1][1] * game[1][2] +except EOFError: + print("1: " , sumindexes) + print("2: " , sumpowers) diff --git a/prog/aoc/23/2/in.txt b/prog/aoc/23/2/in.txt new file mode 100644 index 0000000..295c36d --- /dev/null +++ b/prog/aoc/23/2/in.txt @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green |