Day 14: Interesting but wrong solution
This commit is contained in:
parent
dd8dfd20d7
commit
e111bbc48d
|
@ -0,0 +1,26 @@
|
||||||
|
import Data.List.Split
|
||||||
|
import qualified Data.Map as M
|
||||||
|
import Data.Ratio
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
content <- parseContent <$> readFile "testinput1"
|
||||||
|
print content
|
||||||
|
|
||||||
|
parseContent :: String -> M.Map String [(String, Ratio Int)]
|
||||||
|
parseContent = M.fromList . map (parseRecipe . splitOn " => ") . lines
|
||||||
|
|
||||||
|
parseRecipe :: [String] -> (String, [(String,Ratio Int)])
|
||||||
|
parseRecipe r = (result,ingredients)
|
||||||
|
where parseIngredients = map (splitOn " ") . splitOn ", "
|
||||||
|
left = parseIngredients $ head r
|
||||||
|
right = concat $ parseIngredients $ last r
|
||||||
|
result = last right
|
||||||
|
resultDenom = read $ head right :: Int
|
||||||
|
processIngredient n ing = (last ing,read (head ing) % n)
|
||||||
|
ingredients = map (processIngredient resultDenom) left
|
||||||
|
|
||||||
|
|
||||||
|
part1 :: M.Map String [(String, Ratio Int)] -> (String,Ratio Int) -> Ratio Int
|
||||||
|
part1 _ ("ORE",x) = x
|
||||||
|
part1 m (key,x) = x * sum (map (part1 m) (m M.! key))
|
|
@ -0,0 +1,55 @@
|
||||||
|
13 RXWQR => 4 JXCXB
|
||||||
|
7 FDGDX => 7 XRWJ
|
||||||
|
3 JBVN, 25 JFRXJ => 3 TPDSB
|
||||||
|
13 HZDWS, 11 RZNJR => 3 SVFT
|
||||||
|
5 FDGDX, 4 RZNJR, 41 ZGXGP => 8 LBVM
|
||||||
|
1 LJDRB => 9 RXWQR
|
||||||
|
2 RDPWQ => 8 JBVN
|
||||||
|
2 CZCB => 8 CXHK
|
||||||
|
4 JXCXB, 1 FPQRV => 5 TCBSQ
|
||||||
|
6 FDGDX => 8 TWGNB
|
||||||
|
1 RJBTL => 5 VRVDQ
|
||||||
|
2 XRWJ, 3 HZDWS, 12 LBVM => 6 KSJD
|
||||||
|
15 HPXST, 1 KMKR, 7 SLTX, 1 PRWD, 14 RCLB, 31 TPDSB, 3 GWXJP, 3 TPQZ => 8 XRLZR
|
||||||
|
1 RBLT, 2 RTFKN, 1 CZCB => 8 DNRP
|
||||||
|
131 ORE => 8 TFGJ
|
||||||
|
2 JFRXJ, 1 VRVDQ, 26 TWGNB => 5 CFPZ
|
||||||
|
2 SMPW, 1 TWGNB => 8 RZNJR
|
||||||
|
20 HRZP => 6 RDPWQ
|
||||||
|
1 RCLB, 4 GJNK, 4 QGJL => 4 HZDWS
|
||||||
|
7 CXHK, 2 XTMRV, 6 WSNPZ, 12 LQXCP, 19 PMWJ, 17 GJNK, 26 XRLZR, 36 LWFQ => 1 FUEL
|
||||||
|
131 ORE => 8 KMKR
|
||||||
|
1 LJDRB, 12 TFGJ, 10 RXWQR => 7 RPKZ
|
||||||
|
10 RVXT, 1 RDPWQ => 8 JFRXJ
|
||||||
|
1 QXBTX => 9 TPQZ
|
||||||
|
1 ZGXGP => 5 FZGF
|
||||||
|
1 RTFKN, 1 DNRP => 2 FDGDX
|
||||||
|
19 CZCB, 1 RBLT => 4 SMPW
|
||||||
|
2 DNRP, 1 SMPW => 9 RWSH
|
||||||
|
1 ZGXGP, 5 TCBSQ, 22 SMPW => 5 GWXJP
|
||||||
|
1 HBSKF => 3 LQXCP
|
||||||
|
1 ZGXGP, 2 KSJD, 9 CFPZ => 7 CLGXQ
|
||||||
|
186 ORE => 8 LJDRB
|
||||||
|
1 TPQZ, 2 HBSKF => 1 QGJL
|
||||||
|
8 FZGF, 6 FDGDX => 3 PMWJ
|
||||||
|
9 KMKR => 1 CZCB
|
||||||
|
21 TFGJ, 3 RVXT => 5 HRZP
|
||||||
|
39 FDGDX, 24 TPDSB => 2 RCLB
|
||||||
|
4 HRZP => 2 GJNK
|
||||||
|
6 RZNJR => 2 HBSKF
|
||||||
|
101 ORE => 8 RVXT
|
||||||
|
1 RCLB => 8 QXBTX
|
||||||
|
1 RJBTL => 7 RBLT
|
||||||
|
2 CFPZ, 2 JXCXB, 4 TPQZ => 1 LWFQ
|
||||||
|
1 QGJL, 24 GJNK, 6 TWGNB, 1 SLTX, 18 JFRXJ, 6 MSNM, 6 FDGDX, 2 JXCXB => 5 WSNPZ
|
||||||
|
4 RZNJR => 6 FPQRV
|
||||||
|
12 LJDRB, 10 JFRXJ, 1 ZGXGP => 5 TXZVH
|
||||||
|
13 KSJD, 11 FXGW => 9 PRWD
|
||||||
|
11 SVFT, 2 HZDWS, 1 CLGXQ, 1 LQXCP, 6 JXCXB, 11 PRWD => 5 XTMRV
|
||||||
|
27 TWGNB, 7 FPQRV => 2 SLTX
|
||||||
|
2 HRZP, 6 RXWQR => 9 RJBTL
|
||||||
|
2 CXHK, 1 RPKZ => 1 RTFKN
|
||||||
|
7 RWSH, 12 JBVN, 6 FXGW => 2 ZGXGP
|
||||||
|
1 TXZVH, 4 FPQRV => 8 MSNM
|
||||||
|
16 TPDSB, 1 FXGW => 5 HPXST
|
||||||
|
1 VRVDQ => 2 FXGW
|
Loading…
Reference in New Issue
Block a user