2015 Day 10 in Haskell
This commit is contained in:
		
							parent
							
								
									931c038c43
								
							
						
					
					
						commit
						883cdcc797
					
				
							
								
								
									
										14
									
								
								2015/day10/day10.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								2015/day10/day10.hs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					import Aoc
 | 
				
			||||||
 | 
					import Data.List ( group, sort )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					step :: String -> String
 | 
				
			||||||
 | 
					step = concat . concatMap (\cs -> [show $ length cs, [head cs]]) . group
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part1 :: String -> (Int, String)
 | 
				
			||||||
 | 
					part1 x = (length after40, after40)
 | 
				
			||||||
 | 
					    where after40 = iterate step x !! 40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					part2 :: p -> String -> Int
 | 
				
			||||||
 | 
					part2 _ after40 = length (iterate step after40 !! 10) -- only 10 more needed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main = aocMain' single part1 part2
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user