# Day 2 - Discoded/adventofcode GitHub Wiki

Day 2

The Elf would first like to know which games would have been possible if the bag contained only 12 red cubes, 13 green cubes, and 14 blue cubes?

#### Input:

``````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
``````

#### Output:

``````Game 1: possible
Game 2: possible
Game 3: NOT possible
Game 4: NOT possible
Game 5: possible
``````

Final answer: 8 (sum of game IDs that were possible (1+2+5=8))

#### Solution:

``````MAX_RED_NUMBER = 12
MAX_GREEN_NUMBER = 13
MAX_BLUE_NUMBER = 14

For each line
store game_id
Split: string by "n color",
For each color:
Check color:
if max_color_number < current_number:
game_is_not_possible_ = true
if game_is_not_possible:
return
else:
game_id_sum += game_id
``````

### Day 2 Part 2

As you continue your walk, the Elf poses a second question: in each game you played, what is the fewest number of cubes of each color that could have been in the bag to make the game possible?

#### Input:

``````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
``````

#### Output:

``````Game 1: 4*2*6 = 48
Game 2: 1*3*4 = 12
Game 3: 20*13*6 = 1560
Game 4: 14*3*2 = 630
Game 5: 6*3*2 = 36
``````

Final answer: 2286 (Sum of the powers of each min color in each line(48+12+1560+630+36))

#### Solution:

``````For each line
store game_id
Split: string by "n color",
For each color:
Check color:
if red:
if min_red < current_number:
min_red = current_number
elif green:
if min_green < current_number:
min_green = current_number
// blue
else:
if min_blue < current_number:
min_blue = current_number
if max_color_number < current_number:
game_is_not_possible_ = true
if game_is_not_possible:
return
else:
game_id_sum += game_id

``````