Day 4
This commit is contained in:
18
day04/Part1.hs
Normal file
18
day04/Part1.hs
Normal file
@@ -0,0 +1,18 @@
|
||||
module Part1 where
|
||||
|
||||
import Commons
|
||||
|
||||
|
||||
getNWinningNumbers :: [Int] -> [Int] -> Int
|
||||
getNWinningNumbers _ [] = 0
|
||||
getNWinningNumbers winningNumbers (n: t) | n `elem` winningNumbers = 1 + getNWinningNumbers winningNumbers t
|
||||
| otherwise = getNWinningNumbers winningNumbers t
|
||||
|
||||
getPoints :: Card -> Int
|
||||
getPoints card = let nWinningNumbers = getNWinningNumbers (winningNumbers card) (numbers card)
|
||||
in if nWinningNumbers == 0
|
||||
then 0
|
||||
else 2 ^ (nWinningNumbers - 1)
|
||||
|
||||
getAllPoints :: [Card] -> [Int]
|
||||
getAllPoints = map getPoints
|
||||
Reference in New Issue
Block a user