Files
2023-12-02 01:01:04 -05:00

35 lines
778 B
Ruby

MAX_COLOURS = {
"red" => 12,
"green" => 13,
"blue" => 14
}
res = 0
File.foreach("./2023/day2/data") do |line|
data = line.split(" ")
game_num = data[1][0..data[1].length-2].to_i
full_game_arr = line.split(":")[1].split(";")
is_valid_game = true
full_game_arr.each do |game|
count = {
"red" => 0,
"green" => 0,
"blue" => 0
}
game_round_arr = game.split(",")
game_round_arr.each do |el|
inner_color_dat = el.split(" ")
count[inner_color_dat[1].gsub(",", "")] += inner_color_dat[0].to_i
end
if count["red"] > MAX_COLOURS["red"] or count["green"] > MAX_COLOURS["green"] or count["blue"] > MAX_COLOURS["blue"]
is_valid_game = false
end
end
if is_valid_game
res += game_num
end
end
puts res