| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/ruby
- content = File.readlines 'input.txt'
- sum = 0
- gameid = 0
- sum2 = 0
- content.each do |game|
- #get gameid
- tmp = game[/.*^Game([^:]*)/]
- tmp = tmp.sub("Game ","")
- gameid = tmp.to_i
-
- rounds = game.split(";")
- max_red = 0
- max_green = 0
- max_blue = 0
- for i in 0..rounds.length - 1
- puts "rounds: " + rounds[i].to_s
- colors = rounds[i].split(",")
- for j in 0..colors.length - 1
- if i == 0 and j == 0
- colors[0] = colors[0].split(":")[1]
- end
- #puts "colors: " + colors.to_s
- parts = colors[j].split(" ")
- #parts = ["",""]
- puts parts[1]
- case parts[1]
- when "blue"
- if max_blue < parts[0].to_i
- max_blue = parts[0].to_i
- end
- puts max_blue
- when "red"
- if max_red < parts[0].to_i
- max_red = parts[0].to_i
- end
- puts max_red
- when "green"
- if max_green < parts[0].to_i
- max_green = parts[0].to_i
- end
- puts max_green
- end
- end
- end
- sum2 += (max_blue * max_red * max_green)
- if max_red <= 12 and max_green <= 13 and max_blue <= 14
- sum += gameid
- end
- end
- puts "part1: " + sum.to_s
- puts "part2: " + sum2.to_s
|