浏览代码

Solved part2

Piotr Czajkowski 1 年之前
父节点
当前提交
6bd689ee7f
共有 1 个文件被更改,包括 36 次插入0 次删除
  1. 36 0
      02/code.go

+ 36 - 0
02/code.go

@@ -110,6 +110,41 @@ func part1(games []Game) int {
 	return result
 }
 
+func getLimits(sets [][]Cube) Limits {
+	var limits Limits
+	for i := range sets {
+		for j := range sets[i] {
+			switch sets[i][j].color {
+			case "red":
+				if sets[i][j].count > limits.red {
+					limits.red = sets[i][j].count
+				}
+			case "green":
+				if sets[i][j].count > limits.green {
+					limits.green = sets[i][j].count
+				}
+			case "blue":
+				if sets[i][j].count > limits.blue {
+					limits.blue = sets[i][j].count
+				}
+			}
+		}
+	}
+
+	return limits
+}
+
+func part2(games []Game) int {
+	var result int
+
+	for i := range games {
+		limits := getLimits(games[i].sets)
+		result += limits.red * limits.green * limits.blue
+	}
+
+	return result
+}
+
 func main() {
 	if len(os.Args) < 2 {
 		log.Fatal("You need to specify a file!")
@@ -124,4 +159,5 @@ func main() {
 
 	games := readInput(file)
 	fmt.Println("Part1:", part1(games))
+	fmt.Println("Part2:", part2(games))
 }