main.rb 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/ruby
  2. content = File.readlines 'input.txt'
  3. sum = 0
  4. gameid = 0
  5. sum2 = 0
  6. content.each do |game|
  7. #get gameid
  8. tmp = game[/.*^Game([^:]*)/]
  9. tmp = tmp.sub("Game ","")
  10. gameid = tmp.to_i
  11. rounds = game.split(";")
  12. max_red = 0
  13. max_green = 0
  14. max_blue = 0
  15. for i in 0..rounds.length - 1
  16. puts "rounds: " + rounds[i].to_s
  17. colors = rounds[i].split(",")
  18. for j in 0..colors.length - 1
  19. if i == 0 and j == 0
  20. colors[0] = colors[0].split(":")[1]
  21. end
  22. #puts "colors: " + colors.to_s
  23. parts = colors[j].split(" ")
  24. #parts = ["",""]
  25. puts parts[1]
  26. case parts[1]
  27. when "blue"
  28. if max_blue < parts[0].to_i
  29. max_blue = parts[0].to_i
  30. end
  31. puts max_blue
  32. when "red"
  33. if max_red < parts[0].to_i
  34. max_red = parts[0].to_i
  35. end
  36. puts max_red
  37. when "green"
  38. if max_green < parts[0].to_i
  39. max_green = parts[0].to_i
  40. end
  41. puts max_green
  42. end
  43. end
  44. end
  45. sum2 += (max_blue * max_red * max_green)
  46. if max_red <= 12 and max_green <= 13 and max_blue <= 14
  47. sum += gameid
  48. end
  49. end
  50. puts "part1: " + sum.to_s
  51. puts "part2: " + sum2.to_s