Externalize inputs
This commit is contained in:
parent
838d8a42e3
commit
875122b10c
4 changed files with 33 additions and 20 deletions
1
inputs/day1.txt
Normal file
1
inputs/day1.txt
Normal file
|
@ -0,0 +1 @@
|
|||
29917128875332952564321392569634257121244516819997569284938677239676779378822158323549832814412597817651244117851771257438674567254146559419528411463781241159837576747416543451994579655175322397355255587935456185669334559882554936642122347526466965746273596321419312386992922582836979771421518356285534285825212798113159911272923448284681544657616654285632235958355867722479252256292311384799669645293812691169936746744856227797779513997329663235176153745581296191298956836998758194274865327383988992499115472925731787228592624911829221985925935268785757854569131538763133427434848767475989173579655375125972435359317237712667658828722623837448758528395981635746922144957695238318954845799697142491972626942976788997427135797297649149849739186827185775786254552866371729489943881272817466129271912247236569141713377483469323737384967871876982476485658337183881519295728697121462266226452265259877781881868585356333494916519693683238733823362353424927852348119426673294798416314637799636344448941782774113142925315947664869341363354235389597893211532745789957591898692253157726576488811769461354938575527273474399545366389515353657644736458182565245181653996192644851687269744491856672563885457872883368415631469696994757636288575816146927747179133188841148212825453859269643736199836818121559198563122442483528316837885842696283932779475955796132242682934853291737434482287486978566652161245555856779844813283979453489221189332412315117573259531352875384444264457373153263878999332444178577127433891164266387721116357278222665798584824336957648454426665495982221179382794158366894875864761266695773155813823291684611617853255857774422185987921219618596814446229556938354417164971795294741898631698578989231245376826359179266783767935932788845143542293569863998773276365886375624694329228686284863341465994571635379257258559894197638117333711626435669415976255967412994139131385751822134927578932521461677534945328228131973291962134523589491173343648964449149716696761218423314765168285342711137126239639867897341514131244859826663281981251614843274762372382114258543828157464392
|
16
inputs/day2.txt
Normal file
16
inputs/day2.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
3458 3471 163 1299 170 4200 2425 167 3636 4001 4162 115 2859 130 4075 4269
|
||||
2777 2712 120 2569 2530 3035 1818 32 491 872 113 92 2526 477 138 1360
|
||||
2316 35 168 174 1404 1437 2631 1863 1127 640 1745 171 2391 2587 214 193
|
||||
197 2013 551 1661 121 206 203 174 2289 843 732 2117 360 1193 999 2088
|
||||
3925 3389 218 1134 220 171 1972 348 3919 3706 494 3577 3320 239 120 2508
|
||||
239 947 1029 2024 733 242 217 1781 2904 2156 1500 3100 497 2498 3312 211
|
||||
188 3806 3901 261 235 3733 3747 3721 267 3794 3814 3995 3004 915 4062 3400
|
||||
918 63 2854 2799 178 176 1037 487 206 157 2212 2539 2816 2501 927 3147
|
||||
186 194 307 672 208 351 243 180 619 749 590 745 671 707 334 224
|
||||
1854 3180 1345 3421 478 214 198 194 4942 5564 2469 242 5248 5786 5260 4127
|
||||
3780 2880 236 330 3227 1252 3540 218 213 458 201 408 3240 249 1968 2066
|
||||
1188 696 241 57 151 609 199 765 1078 976 1194 177 238 658 860 1228
|
||||
903 612 188 766 196 900 62 869 892 123 226 57 940 168 165 103
|
||||
710 3784 83 2087 2582 3941 97 1412 2859 117 3880 411 102 3691 4366 4104
|
||||
3178 219 253 1297 3661 1552 8248 678 245 7042 260 581 7350 431 8281 8117
|
||||
837 80 95 281 652 822 1028 1295 101 1140 88 452 85 444 649 1247
|
|
@ -6,7 +6,8 @@ import Protolude
|
|||
import Data.List (tail, foldl')
|
||||
import Data.Char (ord)
|
||||
|
||||
ex1code = "29917128875332952564321392569634257121244516819997569284938677239676779378822158323549832814412597817651244117851771257438674567254146559419528411463781241159837576747416543451994579655175322397355255587935456185669334559882554936642122347526466965746273596321419312386992922582836979771421518356285534285825212798113159911272923448284681544657616654285632235958355867722479252256292311384799669645293812691169936746744856227797779513997329663235176153745581296191298956836998758194274865327383988992499115472925731787228592624911829221985925935268785757854569131538763133427434848767475989173579655375125972435359317237712667658828722623837448758528395981635746922144957695238318954845799697142491972626942976788997427135797297649149849739186827185775786254552866371729489943881272817466129271912247236569141713377483469323737384967871876982476485658337183881519295728697121462266226452265259877781881868585356333494916519693683238733823362353424927852348119426673294798416314637799636344448941782774113142925315947664869341363354235389597893211532745789957591898692253157726576488811769461354938575527273474399545366389515353657644736458182565245181653996192644851687269744491856672563885457872883368415631469696994757636288575816146927747179133188841148212825453859269643736199836818121559198563122442483528316837885842696283932779475955796132242682934853291737434482287486978566652161245555856779844813283979453489221189332412315117573259531352875384444264457373153263878999332444178577127433891164266387721116357278222665798584824336957648454426665495982221179382794158366894875864761266695773155813823291684611617853255857774422185987921219618596814446229556938354417164971795294741898631698578989231245376826359179266783767935932788845143542293569863998773276365886375624694329228686284863341465994571635379257258559894197638117333711626435669415976255967412994139131385751822134927578932521461677534945328228131973291962134523589491173343648964449149716696761218423314765168285342711137126239639867897341514131244859826663281981251614843274762372382114258543828157464392"
|
||||
ex1code :: IO [Char]
|
||||
ex1code = toS <$> readFile "inputs/day1.txt"
|
||||
|
||||
sum :: Num a => [a] -> a
|
||||
sum = foldl' (+) 0
|
||||
|
|
33
src/Day2.hs
33
src/Day2.hs
|
@ -1,4 +1,5 @@
|
|||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-|
|
||||
description:
|
||||
|
||||
|
@ -49,26 +50,20 @@ module Day2 where
|
|||
import Protolude
|
||||
import qualified Control.Foldl as F
|
||||
|
||||
import Data.List (foldl')
|
||||
import Data.List (words,lines)
|
||||
|
||||
input = [
|
||||
[3458,3471,163,1299,170,4200,2425,167,3636,4001,4162,115,2859,130,4075,4269]
|
||||
, [2777,2712,120,2569,2530,3035,1818,32,491,872,113,92,2526,477,138,1360]
|
||||
, [2316,35,168,174,1404,1437,2631,1863,1127,640,1745,171,2391,2587,214,193]
|
||||
, [197,2013,551,1661,121,206,203,174,2289,843,732,2117,360,1193,999,2088]
|
||||
, [3925,3389,218,1134,220,171,1972,348,3919,3706,494,3577,3320,239,120,2508]
|
||||
, [239,947,1029,2024,733,242,217,1781,2904,2156,1500,3100,497,2498,3312,211]
|
||||
, [188,3806,3901,261,235,3733,3747,3721,267,3794,3814,3995,3004,915,4062,3400]
|
||||
, [918,63,2854,2799,178,176,1037,487,206,157,2212,2539,2816,2501,927,3147]
|
||||
, [186,194,307,672,208,351,243,180,619,749,590,745,671,707,334,224]
|
||||
, [1854,3180,1345,3421,478,214,198,194,4942,5564,2469,242,5248,5786,5260,4127]
|
||||
, [3780,2880,236,330,3227,1252,3540,218,213,458,201,408,3240,249,1968,2066]
|
||||
, [1188,696,241,57,151,609,199,765,1078,976,1194,177,238,658,860,1228]
|
||||
, [903,612,188,766,196,900,62,869,892,123,226,57,940,168,165,103]
|
||||
, [710,3784,83,2087,2582,3941,97,1412,2859,117,3880,411,102,3691,4366,4104]
|
||||
, [3178,219,253,1297,3661,1552,8248,678,245,7042,260,581,7350,431,8281,8117]
|
||||
, [837,80,95,281,652,822,1028,1295,101,1140,88,452,85,444,649,1247]
|
||||
]
|
||||
parseInput :: IO (Maybe [[Integer]])
|
||||
parseInput = do
|
||||
inputTxt <- toS <$> readFile "inputs/day2.txt"
|
||||
return $ inputTxt -- Str
|
||||
& lines -- [String]
|
||||
& traverse lineOfInteger
|
||||
|
||||
lineOfInteger :: [Char] -> Maybe [Integer]
|
||||
lineOfInteger = traverse strToInteger . words
|
||||
|
||||
strToInteger :: [Char] -> Maybe Integer
|
||||
strToInteger = fmap fst . head . reads
|
||||
|
||||
solution1 :: [[Integer]] -> Integer
|
||||
solution1 code =
|
||||
|
|
Loading…
Reference in a new issue