16 lines
481 B
Haskell
16 lines
481 B
Haskell
module Part1 where
|
|
|
|
import Commons
|
|
import Data.List (sort, sortOn)
|
|
|
|
|
|
getHandValue :: Hand -> HandValue
|
|
getHandValue hand = HandValue {hand = hand, value = 100 ^ 5 * (getHandValueTypeFromSorted . sort) (values hand)
|
|
+ getHandSecondValue (values hand)}
|
|
|
|
sortHands :: [Hand] -> [Hand]
|
|
sortHands = map hand . sortHandValues . map getHandValue
|
|
|
|
getTotalWinnings :: [Hand] -> Int
|
|
getTotalWinnings = getWinningsFromSorted 1 . sortHands
|