commit f84cea91d568459dc840fd6ad7260ae9f6c19b52 Author: Thorn Avery Date: Tue Dec 1 20:27:50 2020 +1300 first commit diff --git a/day1.hs b/day1.hs new file mode 100644 index 0000000..e39e3e6 --- /dev/null +++ b/day1.hs @@ -0,0 +1,25 @@ +module Main where + +main :: IO () +main = do + raw <- readFile "day1.txt" + let ls = map read $ lines raw :: [Integer] + in do + case (solveA ls) of + Nothing -> error "no answer" + (Just x) -> putStrLn $ "day1a: " ++ (show x) + case (solveB ls) of + Nothing -> error "no answer" + (Just x) -> putStrLn $ "day1b: " ++ (show x) + +solveA :: [Integer] -> Maybe Integer +solveA [] = Nothing +solveA xs = Just $ (\(x,y) -> x * y) lsa + where + lsa = head [ (x,y) | x <- xs, y <- xs, x + y == 2020 ] + +solveB :: [Integer] -> Maybe Integer +solveB [] = Nothing +solveB xs = Just $ (\(x,y,z) -> x * y * z) lsb + where + lsb = head [ (x,y,z) | x <- xs, y <- xs, z <- xs, x + y + z == 2020 ] diff --git a/day1.txt b/day1.txt new file mode 100644 index 0000000..f748d3a --- /dev/null +++ b/day1.txt @@ -0,0 +1,200 @@ +1348 +1621 +1500 +1818 +1266 +1449 +1880 +1416 +1862 +1665 +1588 +1704 +1922 +1482 +1679 +1263 +1137 +1045 +1405 +1048 +1619 +1520 +455 +1142 +1415 +1554 +1690 +1886 +1891 +1701 +1915 +1521 +1253 +1580 +1376 +1564 +1747 +1814 +1749 +1485 +1969 +974 +1566 +1413 +1451 +1200 +1558 +1756 +1910 +1044 +470 +1620 +1772 +1066 +1261 +1776 +988 +1976 +1834 +1896 +1646 +1626 +1300 +1692 +1204 +2006 +1265 +1911 +1361 +1766 +1750 +2000 +1824 +1726 +1672 +651 +1226 +1954 +1055 +1999 +1793 +1640 +1567 +1040 +1426 +1717 +1658 +1864 +1917 +695 +1071 +1573 +1897 +1546 +1727 +1801 +1259 +1290 +1481 +1148 +1332 +1262 +1536 +1184 +1821 +1681 +1671 +1612 +1678 +1703 +1604 +1697 +2003 +1453 +1493 +1797 +1180 +1234 +1775 +1859 +1388 +1393 +667 +1767 +1429 +1990 +1322 +1684 +1696 +1565 +1380 +1745 +1685 +1189 +1396 +1593 +1850 +1722 +1495 +1844 +1285 +1483 +1635 +1072 +1947 +1109 +1586 +1730 +1723 +1246 +1389 +1135 +1827 +1531 +1583 +1743 +1958 +183 +1323 +1949 +1799 +1269 +1379 +1950 +1592 +1467 +1052 +1418 +2009 +1227 +1254 +1865 +1609 +1848 +1653 +1691 +1633 +1349 +1104 +1790 +1755 +1847 +1598 +1872 +1478 +1778 +1952 +1694 +1238 +1825 +1508 +1141 +1464 +1838 +1292 +1403 +1365 +1494 +934 +1235