@@ -1,4 +0,0 @@
 | 
				
			|||||||
import Lib (calories)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
main :: IO ()
 | 
					 | 
				
			||||||
main = print . maximum . calories =<< readFile "input"
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
import Data.List (sortOn)
 | 
					 | 
				
			||||||
import Data.Ord (Down (Down))
 | 
					 | 
				
			||||||
import Lib (calories)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
main :: IO ()
 | 
					 | 
				
			||||||
main = print . sum . take 3 . sortOn Down . calories =<< readFile "input"
 | 
					 | 
				
			||||||
@@ -1,9 +1,4 @@
 | 
				
			|||||||
module Lib (calories) where
 | 
					module Lib (split) where
 | 
				
			||||||
 | 
					 | 
				
			||||||
calories :: String -> [Integer]
 | 
					 | 
				
			||||||
calories input =
 | 
					 | 
				
			||||||
  map (sum . map read) $
 | 
					 | 
				
			||||||
    filter (not . null) $ split "" $ split '\n' input
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
split :: Eq a => a -> [a] -> [[a]]
 | 
					split :: Eq a => a -> [a] -> [[a]]
 | 
				
			||||||
split del =
 | 
					split del =
 | 
				
			||||||
							
								
								
									
										24
									
								
								day1.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								day1.hs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					import Data.List (sortOn)
 | 
				
			||||||
 | 
					import Data.Ord (Down (Down))
 | 
				
			||||||
 | 
					import Lib (split)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main :: IO ()
 | 
				
			||||||
 | 
					main = do
 | 
				
			||||||
 | 
					  input <- readFile "day1.in"
 | 
				
			||||||
 | 
					  putStr "Q1: "
 | 
				
			||||||
 | 
					  print $ q1 input
 | 
				
			||||||
 | 
					  putStr "Q2: "
 | 
				
			||||||
 | 
					  print $ q2 input
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					q1 :: String -> Int
 | 
				
			||||||
 | 
					q1 = maximum . calories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					q2 :: String -> Int
 | 
				
			||||||
 | 
					q2 = sum . take 3 . sortOn Down . calories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					calories :: String -> [Int]
 | 
				
			||||||
 | 
					calories =
 | 
				
			||||||
 | 
					  map (sum . map read)
 | 
				
			||||||
 | 
					    . filter (not . null)
 | 
				
			||||||
 | 
					    . split ""
 | 
				
			||||||
 | 
					    . split '\n'
 | 
				
			||||||
		Reference in New Issue
	
	Block a user