19 lines
737 B
Haskell
19 lines
737 B
Haskell
module Part2 where
|
|
|
|
import Commons
|
|
|
|
|
|
getMinCubesRound :: [Round] -> Round
|
|
getMinCubesRound (round: []) = round
|
|
getMinCubesRound (round: otherRound: t) = getMinCubesRound (Round {red = max (red round) (red otherRound),
|
|
green = max (green round) (green otherRound),
|
|
blue = max (blue round) (blue otherRound)}: t)
|
|
|
|
getPowerGame :: Game -> Int
|
|
getPowerGame Game{rounds=rounds} = let minRound = getMinCubesRound rounds
|
|
in (red minRound) * (green minRound) * (blue minRound)
|
|
|
|
getPower :: [Game] -> [Int]
|
|
getPower [] = []
|
|
getPower (game: t) = (getPowerGame game: getPower t)
|