18 lines
471 B
Haskell
18 lines
471 B
Haskell
-- module Main (main, part1, part2) where
|
|
import Text.Printf (printf)
|
|
|
|
parseLine :: String -> Integer
|
|
parseLine = read
|
|
|
|
part1 numbers =
|
|
head [x * y | x <- numbers, y <- numbers, x + y == 2020]
|
|
|
|
part2 numbers=
|
|
head [x * y * z | x <- numbers, y <- numbers, z <- numbers, x + y + z == 2020]
|
|
|
|
main :: IO ()
|
|
main = do
|
|
numbers <- map parseLine . lines <$> readFile "input"
|
|
putStr $ printf "Part 1: %d\n" (part1 numbers)
|
|
putStr $ printf "Part 2: %d\n" (part2 numbers)
|