diff --git a/2022/day09/day09.hs b/2022/day09/day09.hs new file mode 100644 index 0000000..5dc730d --- /dev/null +++ b/2022/day09/day09.hs @@ -0,0 +1,32 @@ +import Linear.V2 +import Data.List +import Control.Lens + +type Rope = (V2 Int,V2 Int) + +main :: IO () +main = do + input <- concat <$> map (parse . words) <$> lines <$> readFile "input" + print $ length $ nub $ sort $ snd $ moveAll ((V2 0 0,V2 0 0),[]) input + +parse :: [String] -> [V2 Int] +parse (dir:len:[]) + | dir == "R" = f $ V2 1 0 + | dir == "L" = f $ V2 (-1) 0 + | dir == "U" = f $ V2 0 1 + | dir == "D" = f $ V2 0 (-1) + where f = take (read len) . repeat + +moveAll :: (Rope,[V2 Int]) -> [V2 Int] -> (Rope,[V2 Int]) +moveAll r (x:xs) = moveAll (move r x) xs +moveAll ((head,tail),xs) _ = ((head,tail),tail:xs) + +move :: (Rope,[V2 Int]) -> V2 Int -> (Rope,[V2 Int]) +move ((head,tail),ps) m = ((head+m,newTail),tail:ps) + where newTail = tailMove (head + m - tail) + tail + +tailMove (V2 a b) = V2 (f a) (f b) + where f x + | abs a == abs b = 0 + | abs a + abs b == 1 = 0 + | otherwise = if abs x >= 2 then x `div` 2 else x diff --git a/2022/day09/input b/2022/day09/input new file mode 100644 index 0000000..e543182 --- /dev/null +++ b/2022/day09/input @@ -0,0 +1,2000 @@ +L 2 +D 2 +R 2 +U 1 +L 1 +U 1 +R 1 +U 2 +R 2 +U 2 +L 2 +R 2 +U 2 +L 2 +U 1 +R 1 +U 1 +R 2 +U 1 +D 2 +U 2 +L 2 +R 1 +U 2 +R 2 +U 2 +L 1 +D 1 +L 1 +R 2 +L 2 +D 1 +L 1 +R 2 +U 2 +L 1 +U 1 +L 2 +R 1 +L 1 +D 2 +U 2 +L 2 +D 1 +R 2 +D 1 +U 2 +D 2 +L 2 +D 1 +L 1 +R 1 +D 2 +U 2 +L 2 +U 1 +L 1 +U 2 +R 2 +D 1 +U 2 +R 2 +U 1 +L 2 +R 2 +D 2 +U 2 +D 2 +L 2 +D 1 +U 2 +L 1 +R 1 +L 1 +D 2 +U 1 +D 1 +L 2 +D 1 +L 1 +R 1 +U 1 +L 2 +R 2 +U 2 +D 2 +L 1 +R 2 +D 1 +R 2 +D 2 +L 1 +U 2 +R 1 +D 2 +L 1 +D 2 +U 2 +D 1 +U 2 +R 1 +D 1 +L 1 +D 2 +R 2 +U 1 +R 1 +D 2 +L 2 +R 2 +D 1 +R 3 +U 1 +D 1 +U 1 +R 2 +U 2 +R 3 +U 3 +L 3 +D 2 +L 3 +D 1 +L 3 +D 3 +R 3 +D 3 +R 3 +L 2 +D 3 +R 1 +L 3 +U 1 +L 1 +U 1 +L 2 +R 3 +D 2 +U 3 +R 3 +D 2 +L 3 +R 3 +D 1 +L 3 +U 1 +D 1 +L 1 +D 2 +L 2 +U 1 +L 1 +R 1 +U 3 +R 2 +L 3 +U 2 +R 2 +U 1 +D 3 +U 1 +L 1 +U 2 +R 1 +D 3 +R 3 +U 3 +D 2 +U 1 +L 1 +D 3 +L 2 +U 3 +D 1 +R 1 +D 1 +R 3 +U 2 +L 1 +U 3 +R 1 +U 2 +L 3 +R 2 +L 1 +R 1 +U 2 +L 1 +D 2 +L 3 +D 3 +R 3 +D 1 +U 3 +D 1 +R 3 +U 2 +L 2 +D 1 +U 1 +R 3 +L 2 +D 2 +L 2 +D 2 +R 1 +D 3 +L 1 +R 2 +L 2 +R 3 +L 1 +U 1 +D 2 +R 2 +U 3 +R 1 +L 2 +R 3 +U 1 +L 3 +D 3 +L 1 +D 1 +U 4 +R 2 +L 1 +D 3 +U 1 +D 3 +R 2 +L 2 +D 2 +L 3 +U 4 +D 4 +L 4 +U 1 +D 2 +L 3 +R 1 +L 1 +U 2 +D 1 +U 3 +L 2 +R 2 +D 2 +L 2 +R 4 +D 1 +L 2 +R 4 +U 4 +L 3 +R 3 +D 1 +L 3 +U 3 +L 1 +U 3 +L 1 +D 4 +U 1 +R 3 +L 2 +R 3 +D 2 +L 4 +U 1 +D 4 +L 2 +U 2 +D 3 +L 2 +U 3 +R 1 +U 1 +R 2 +U 3 +L 1 +R 4 +D 2 +R 1 +D 1 +L 4 +R 3 +U 1 +D 2 +L 3 +R 4 +L 1 +U 1 +D 2 +U 1 +D 3 +R 3 +L 3 +U 1 +L 3 +R 3 +D 2 +U 2 +L 2 +R 1 +L 3 +U 3 +R 4 +D 1 +U 4 +D 1 +R 2 +D 4 +L 2 +R 1 +L 2 +R 1 +D 3 +U 3 +R 1 +U 1 +R 1 +D 2 +R 4 +D 4 +L 3 +D 4 +R 1 +D 1 +U 1 +L 1 +R 1 +D 4 +L 1 +R 1 +U 4 +R 5 +D 4 +R 5 +U 1 +D 1 +R 1 +U 4 +L 3 +D 5 +U 3 +L 2 +D 3 +R 5 +U 1 +D 1 +R 2 +L 1 +R 3 +D 4 +R 5 +L 1 +U 3 +D 3 +R 1 +D 4 +R 1 +L 4 +R 3 +U 1 +D 1 +U 5 +R 2 +L 3 +U 1 +L 4 +D 1 +R 3 +L 4 +D 2 +R 3 +L 5 +D 2 +L 3 +D 2 +L 2 +R 4 +D 1 +R 3 +L 5 +U 2 +L 4 +D 3 +L 2 +R 4 +D 5 +L 5 +R 4 +U 5 +D 2 +U 4 +D 4 +L 3 +U 3 +L 3 +D 1 +R 4 +D 4 +U 3 +R 4 +L 3 +D 2 +L 4 +D 2 +L 4 +R 3 +L 5 +R 2 +L 3 +R 3 +U 4 +D 4 +L 4 +R 2 +D 4 +U 3 +L 3 +U 1 +D 2 +U 5 +L 2 +D 3 +U 1 +R 5 +D 2 +L 3 +U 1 +D 2 +L 2 +U 2 +R 5 +L 4 +R 4 +L 2 +D 3 +R 1 +U 5 +R 2 +L 5 +U 3 +L 3 +R 6 +D 2 +L 2 +R 2 +U 1 +D 6 +U 6 +D 1 +L 3 +R 6 +U 6 +R 3 +D 6 +R 5 +U 5 +D 1 +R 4 +L 2 +U 2 +R 4 +D 6 +U 4 +R 4 +D 6 +R 2 +U 1 +D 5 +U 3 +R 1 +L 2 +R 1 +U 6 +R 1 +L 1 +U 4 +R 1 +D 6 +U 2 +D 5 +R 2 +D 6 +R 3 +L 3 +U 1 +R 3 +L 4 +D 6 +L 3 +U 3 +D 1 +U 4 +R 6 +L 3 +D 2 +U 6 +R 2 +D 4 +R 3 +D 5 +U 2 +L 1 +D 4 +R 1 +L 3 +R 5 +U 4 +D 1 +L 3 +U 4 +R 2 +D 6 +R 4 +D 5 +R 5 +D 3 +R 6 +L 4 +U 2 +L 4 +U 2 +L 5 +D 2 +R 3 +D 2 +R 6 +U 4 +R 5 +U 1 +R 6 +D 4 +L 2 +D 2 +U 2 +L 5 +R 1 +U 2 +R 3 +U 5 +L 3 +D 1 +L 1 +R 1 +L 3 +U 1 +L 4 +R 3 +L 6 +U 4 +L 2 +D 2 +U 7 +R 7 +U 4 +R 5 +D 4 +L 7 +U 5 +L 5 +U 1 +D 5 +L 3 +R 4 +D 3 +R 5 +L 3 +D 3 +L 4 +U 5 +L 4 +R 2 +L 5 +U 4 +L 4 +D 4 +U 5 +L 3 +U 7 +R 2 +L 1 +U 2 +L 7 +U 5 +R 4 +D 5 +R 1 +L 3 +D 6 +R 7 +L 1 +R 5 +D 4 +U 4 +L 7 +D 6 +U 7 +R 4 +U 2 +R 2 +U 2 +R 7 +D 6 +R 4 +L 1 +R 4 +D 3 +U 5 +R 3 +L 5 +R 2 +L 3 +D 2 +R 1 +D 3 +L 7 +D 4 +L 7 +U 7 +D 5 +R 6 +U 7 +R 5 +D 6 +R 5 +L 4 +U 1 +D 2 +L 4 +D 5 +L 5 +D 2 +L 7 +R 2 +U 7 +L 6 +D 3 +U 3 +D 6 +U 1 +R 3 +L 1 +U 7 +R 2 +D 2 +U 3 +L 6 +D 5 +U 5 +D 2 +R 6 +D 3 +L 3 +R 2 +L 6 +D 1 +L 2 +D 1 +L 7 +U 1 +D 2 +U 3 +L 5 +D 7 +R 2 +L 8 +U 7 +L 4 +U 4 +D 1 +U 4 +D 3 +R 8 +U 3 +L 4 +R 1 +L 5 +R 1 +L 1 +D 8 +R 5 +L 2 +U 1 +L 8 +U 8 +D 1 +R 3 +U 1 +R 1 +U 5 +R 4 +L 4 +U 7 +D 1 +U 8 +L 4 +D 7 +U 8 +L 5 +D 2 +R 4 +L 3 +R 2 +L 2 +D 1 +U 4 +D 2 +L 8 +U 1 +R 6 +D 5 +R 7 +D 2 +U 4 +L 4 +R 3 +U 2 +D 8 +R 3 +L 3 +U 2 +R 1 +D 5 +U 2 +R 5 +D 8 +R 7 +U 2 +L 6 +U 2 +D 1 +L 4 +U 1 +D 7 +U 4 +L 3 +U 5 +R 5 +D 4 +R 7 +U 4 +L 6 +R 4 +U 5 +D 7 +U 5 +D 3 +L 5 +U 1 +L 8 +D 8 +R 3 +L 6 +R 6 +U 1 +R 8 +L 8 +U 6 +R 2 +L 6 +U 2 +L 4 +D 1 +L 1 +U 5 +D 3 +R 6 +D 6 +L 7 +D 7 +L 1 +R 7 +U 4 +L 7 +U 6 +R 1 +L 8 +D 6 +L 5 +U 2 +D 7 +R 8 +D 1 +L 6 +R 1 +L 8 +D 3 +R 8 +L 8 +U 7 +R 3 +U 6 +L 2 +R 9 +L 3 +R 9 +D 1 +L 2 +R 7 +L 8 +U 1 +D 9 +U 7 +L 9 +R 1 +L 8 +D 7 +R 4 +L 9 +U 1 +L 2 +D 7 +R 7 +D 5 +L 4 +D 7 +U 9 +R 9 +D 4 +R 6 +D 5 +L 1 +R 8 +U 8 +L 6 +R 4 +L 3 +U 4 +D 7 +R 8 +D 8 +R 2 +L 4 +R 4 +U 1 +L 8 +U 5 +L 9 +U 4 +R 9 +L 1 +R 1 +D 5 +L 5 +D 8 +U 2 +L 4 +U 5 +D 4 +L 1 +D 1 +R 1 +U 9 +R 4 +D 2 +U 6 +L 5 +R 7 +D 9 +L 3 +U 2 +L 8 +U 6 +D 4 +R 1 +U 4 +R 1 +U 6 +D 8 +U 7 +R 5 +D 4 +R 2 +D 6 +U 6 +R 1 +U 3 +D 8 +U 2 +R 1 +U 8 +D 9 +U 3 +R 3 +D 6 +R 8 +D 1 +L 2 +D 2 +R 3 +D 3 +U 3 +D 2 +R 2 +L 5 +R 1 +U 9 +L 9 +D 3 +R 2 +L 10 +R 6 +L 5 +R 4 +L 6 +R 8 +D 2 +L 1 +R 2 +D 4 +L 9 +D 6 +U 2 +R 7 +U 9 +D 5 +R 2 +L 10 +D 7 +L 8 +U 3 +R 4 +U 4 +L 7 +U 10 +R 8 +L 7 +U 10 +R 9 +D 4 +R 2 +L 10 +R 9 +L 4 +D 7 +L 10 +D 5 +U 4 +R 3 +L 7 +D 3 +L 3 +R 3 +D 10 +R 2 +L 6 +D 5 +R 10 +L 7 +U 1 +D 6 +L 3 +D 4 +L 3 +D 7 +R 10 +U 6 +R 2 +U 5 +R 7 +U 3 +R 2 +U 6 +R 5 +L 9 +R 5 +D 3 +U 4 +L 5 +R 6 +U 1 +L 6 +U 7 +D 10 +R 10 +U 9 +L 10 +D 10 +R 6 +L 1 +U 8 +R 10 +U 8 +R 10 +U 1 +D 8 +U 10 +R 9 +D 8 +R 4 +D 10 +L 4 +U 9 +L 1 +D 3 +R 1 +L 3 +D 1 +L 9 +R 5 +D 7 +R 3 +L 4 +R 8 +U 6 +D 7 +U 3 +R 1 +D 8 +L 3 +R 9 +U 8 +R 11 +D 5 +L 5 +U 3 +R 6 +U 10 +R 8 +D 1 +U 3 +D 1 +R 11 +D 8 +U 11 +R 7 +U 6 +R 7 +U 6 +L 7 +D 4 +U 10 +L 4 +U 1 +L 10 +D 3 +R 3 +U 9 +L 11 +U 10 +R 6 +U 10 +R 10 +D 9 +L 10 +R 6 +L 2 +R 6 +L 1 +D 10 +U 8 +D 11 +U 2 +L 9 +U 7 +R 8 +L 10 +R 11 +D 4 +L 9 +R 3 +U 1 +L 8 +D 1 +L 9 +U 8 +D 8 +U 5 +R 6 +D 5 +R 9 +D 1 +L 11 +R 4 +D 11 +R 9 +L 11 +R 1 +U 5 +L 3 +D 4 +R 6 +D 9 +R 4 +L 7 +U 3 +D 6 +U 8 +D 1 +U 8 +D 5 +U 11 +R 7 +U 1 +L 1 +U 5 +L 4 +D 1 +R 1 +L 8 +U 9 +D 10 +U 4 +L 1 +R 4 +D 11 +R 8 +D 8 +R 11 +D 12 +U 3 +L 12 +U 10 +L 9 +R 11 +D 10 +R 5 +D 12 +U 6 +L 12 +R 3 +D 7 +U 11 +L 6 +U 5 +R 8 +D 3 +U 8 +D 8 +R 10 +D 12 +L 4 +R 10 +L 10 +U 1 +L 7 +R 10 +L 7 +U 4 +R 1 +L 10 +R 8 +D 11 +L 2 +U 2 +L 6 +U 9 +R 10 +L 2 +R 10 +U 4 +R 9 +D 7 +L 1 +U 7 +L 12 +D 1 +L 9 +U 7 +L 8 +R 12 +L 3 +D 9 +U 7 +L 11 +D 6 +R 4 +D 2 +R 11 +U 10 +R 8 +D 12 +U 10 +R 4 +L 11 +R 2 +U 11 +L 7 +R 6 +L 12 +R 5 +U 7 +L 6 +R 12 +D 6 +R 2 +L 10 +U 4 +D 5 +U 11 +R 3 +D 10 +L 2 +U 9 +L 3 +D 6 +U 10 +L 3 +U 10 +L 7 +R 8 +U 10 +D 3 +R 3 +L 12 +D 12 +L 9 +R 2 +D 2 +R 9 +L 4 +D 5 +L 2 +R 12 +D 2 +R 4 +U 2 +D 4 +U 3 +R 13 +L 3 +U 9 +R 5 +U 2 +D 8 +L 7 +D 10 +L 1 +U 2 +R 13 +D 11 +L 7 +D 6 +L 11 +R 12 +U 2 +D 9 +R 11 +U 9 +D 9 +L 2 +D 13 +U 3 +L 7 +D 3 +L 10 +R 5 +U 4 +L 5 +U 8 +L 4 +U 11 +R 3 +L 3 +D 1 +L 12 +D 8 +R 12 +L 1 +U 6 +D 2 +U 13 +L 5 +U 4 +R 12 +L 11 +U 1 +D 3 +U 11 +D 1 +R 2 +L 6 +D 11 +R 5 +D 7 +R 2 +U 9 +L 5 +R 4 +U 4 +R 9 +U 9 +L 9 +U 3 +R 10 +L 5 +R 5 +U 13 +D 2 +U 2 +L 3 +R 1 +U 11 +D 10 +L 7 +D 8 +R 10 +U 10 +L 13 +U 3 +L 9 +D 2 +R 13 +U 2 +D 10 +U 8 +L 5 +U 1 +D 10 +L 11 +R 5 +D 8 +L 11 +D 3 +R 13 +D 11 +L 8 +D 6 +L 3 +U 13 +L 9 +U 8 +R 8 +U 11 +D 1 +U 7 +D 2 +R 8 +L 4 +D 6 +U 10 +L 6 +R 2 +D 8 +R 5 +L 7 +U 4 +D 9 +U 4 +D 12 +L 12 +R 3 +L 12 +D 7 +L 3 +U 10 +D 3 +U 5 +R 3 +U 4 +L 4 +R 9 +L 8 +R 11 +D 5 +R 10 +D 13 +U 1 +L 4 +D 5 +R 13 +U 1 +R 8 +U 9 +D 2 +R 8 +D 4 +U 14 +R 14 +D 13 +U 2 +R 1 +U 3 +D 11 +L 3 +U 2 +D 10 +L 6 +U 9 +R 13 +D 10 +U 13 +D 4 +L 11 +D 9 +U 6 +L 6 +U 6 +D 4 +L 7 +D 14 +L 11 +D 1 +L 12 +R 2 +L 10 +U 3 +D 5 +U 12 +D 6 +U 6 +D 3 +U 8 +R 3 +D 11 +R 7 +D 4 +R 3 +U 12 +R 10 +D 9 +U 12 +R 6 +L 13 +D 1 +L 3 +U 1 +R 14 +L 8 +D 11 +L 5 +U 10 +L 12 +D 9 +R 11 +L 14 +D 8 +L 2 +R 9 +D 7 +U 4 +L 9 +D 9 +U 6 +D 5 +R 5 +L 10 +R 12 +L 13 +U 8 +L 2 +D 3 +L 8 +U 3 +R 14 +D 9 +U 8 +D 7 +U 2 +L 5 +R 11 +U 12 +L 3 +U 13 +D 4 +R 9 +U 8 +D 14 +R 14 +L 5 +D 4 +U 12 +L 1 +D 11 +R 1 +U 12 +D 1 +U 9 +L 14 +D 4 +R 15 +D 10 +U 14 +R 13 +U 11 +D 8 +L 1 +U 5 +R 2 +D 10 +U 9 +R 11 +D 2 +L 15 +R 3 +U 2 +D 4 +U 15 +D 8 +L 6 +D 1 +L 4 +U 2 +D 11 +R 6 +U 2 +R 13 +U 4 +L 5 +D 2 +R 5 +U 10 +R 4 +D 1 +R 9 +D 11 +L 13 +U 13 +R 2 +L 3 +R 7 +U 10 +R 14 +L 15 +R 1 +U 12 +D 6 +R 10 +L 12 +R 13 +D 11 +U 15 +R 8 +L 12 +D 6 +R 10 +D 4 +L 1 +R 5 +L 10 +U 2 +R 1 +L 9 +D 15 +R 7 +U 8 +D 8 +L 1 +D 14 +U 5 +D 4 +L 1 +R 6 +L 15 +U 13 +D 6 +L 5 +D 13 +R 9 +D 7 +L 15 +R 2 +D 14 +R 12 +D 13 +L 6 +U 5 +L 13 +U 16 +L 3 +D 12 +L 13 +U 11 +L 5 +U 6 +D 5 +L 15 +D 2 +R 6 +L 2 +R 5 +L 6 +R 16 +D 4 +L 10 +R 9 +L 9 +D 5 +R 6 +D 8 +U 6 +D 1 +R 4 +U 6 +D 10 +R 4 +L 12 +D 10 +R 2 +D 5 +U 15 +R 12 +U 6 +D 15 +R 5 +D 1 +L 9 +U 16 +R 3 +D 6 +L 1 +R 12 +D 12 +U 3 +R 1 +D 2 +L 11 +R 7 +D 7 +U 10 +L 8 +U 15 +L 7 +U 12 +D 10 +R 2 +L 8 +R 12 +D 16 +R 13 +L 15 +U 1 +R 1 +U 13 +L 6 +R 12 +L 5 +D 5 +U 12 +D 4 +L 7 +R 11 +L 12 +U 16 +D 11 +U 7 +L 1 +U 11 +D 7 +U 14 +D 14 +R 10 +D 4 +R 5 +D 2 +R 13 +L 13 +D 6 +L 16 +R 1 +L 4 +D 3 +U 15 +R 1 +U 2 +D 2 +U 2 +D 3 +U 7 +D 16 +U 11 +L 8 +R 1 +D 6 +U 1 +R 5 +L 6 +U 5 +D 3 +L 13 +U 8 +L 11 +D 17 +U 12 +L 16 +U 1 +D 6 +U 17 +D 7 +U 12 +R 3 +U 6 +L 10 +R 1 +L 14 +U 11 +L 8 +U 10 +L 14 +D 4 +R 3 +L 14 +D 13 +L 17 +R 12 +U 9 +D 7 +U 2 +R 10 +L 16 +U 9 +R 17 +D 14 +U 9 +L 13 +R 13 +L 5 +U 14 +L 4 +R 10 +U 2 +L 9 +D 17 +L 17 +U 9 +D 9 +L 4 +U 15 +L 2 +U 17 +R 1 +L 5 +R 2 +U 5 +R 5 +L 17 +R 4 +U 12 +R 11 +L 17 +U 11 +D 15 +U 10 +R 7 +D 9 +L 15 +U 1 +D 6 +L 13 +R 7 +D 12 +L 6 +U 14 +R 11 +D 2 +L 4 +R 14 +L 17 +R 2 +D 1 +R 13 +L 12 +D 12 +L 16 +D 14 +L 4 +R 14 +U 15 +L 17 +U 9 +D 13 +R 6 +D 2 +R 4 +L 8 +U 16 +R 10 +L 6 +U 7 +D 4 +L 15 +D 2 +U 14 +L 5 +R 8 +L 2 +D 14 +U 7 +R 5 +U 13 +L 9 +D 2 +U 18 +R 9 +U 13 +R 9 +L 5 +D 10 +U 18 +D 13 +U 13 +D 14 +L 3 +R 2 +L 13 +D 11 +R 17 +L 15 +D 3 +L 1 +U 10 +L 14 +D 15 +L 13 +R 12 +D 4 +L 1 +D 2 +R 16 +D 10 +U 11 +L 12 +U 1 +D 2 +R 3 +U 2 +R 12 +L 6 +D 1 +L 13 +R 11 +U 8 +L 8 +D 10 +R 5 +U 6 +L 7 +R 4 +U 9 +L 6 +D 10 +L 14 +U 11 +D 1 +L 7 +R 3 +U 16 +L 11 +D 13 +L 14 +U 10 +L 3 +R 12 +U 9 +R 11 +U 10 +L 8 +D 5 +U 9 +L 16 +R 17 +D 3 +R 5 +D 13 +U 8 +R 5 +U 16 +R 2 +U 13 +D 16 +L 9 +D 14 +L 15 +U 15 +L 1 +D 8 +L 7 +D 1 +R 11 +D 16 +R 9 +U 14 +L 18 +U 4 +D 14 +L 14 +D 9 +R 6 +L 1 +R 4 +L 11 +D 17 +L 9 +R 10 +L 19 +U 12 +D 15 +R 9 +L 3 +D 13 +R 6 +D 19 +R 9 +D 1 +L 13 +D 8 +L 19 +U 14 +R 18 +D 10 +R 7 +L 18 +U 18 +D 5 +L 1 +U 10 +D 10 +U 19 +R 14 +L 7 +D 19 +U 10 +L 3 +U 17 +D 1 +L 5 +U 7 +R 16 +D 3 +U 8 +D 17 +U 17 +D 17 +L 14 +D 19 +R 8 +D 14 +L 7 +U 7 +L 5 +D 6 +L 1 +U 14 +L 10 +U 15 +L 7 +D 14 +L 11 +R 5 +D 14 +L 13 +R 2 +L 19 +D 7 +R 8 +L 16 +U 4 +L 9 +U 17 +R 15 +L 8 +U 15 +D 5 +R 8 +L 16 +R 6 +D 17 +U 19 +D 19 +R 10 +D 4 +U 12 +D 2 +L 18 +D 13 +L 7 +U 17 +L 13 +D 5 +U 2 +L 6 +R 4 +U 19 +L 4 +D 8 +U 7 +L 3 +R 4 +U 17 +L 1 +U 6 +R 9 +D 16 +R 4 +D 9 +R 9 +L 11 +U 17 +D 18 +U 18 +R 16 +L 7 +R 18 +U 5 +L 4 +D 7 diff --git a/2022/day09/testinput b/2022/day09/testinput new file mode 100644 index 0000000..9874df2 --- /dev/null +++ b/2022/day09/testinput @@ -0,0 +1,8 @@ +R 4 +U 4 +L 3 +D 1 +R 4 +D 1 +L 5 +R 2