Advertisement
Guest User

Untitled

a guest
Feb 10th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.84 KB | None | 0 0
  1.   let e18 =
  2.     let input = System.IO.File.ReadAllLines(@"C:\Users\Peter\source\repos\ProjectEuler\ProjectEuler\pyramid.txt")
  3.     let parsed =
  4.         input
  5.         |> Array.map (fun str ->
  6.             str.Split([|' '|])
  7.             |> Array.map int
  8.             |> List.ofArray)
  9.         |> List.ofArray
  10.         |> List.rev
  11.     let rec getMaxSum (pyramid: int list list) =
  12.         match pyramid with
  13.         | l when List.length l = 1 -> l.Head.Head
  14.         | baseOfPyramid::secondLayer::rest ->
  15.             let possiblePairs = (List.windowed 2 baseOfPyramid)
  16.             getMaxSum
  17.                 (List.append
  18.                 [((List.map2
  19.                     (fun block pair -> block + (List.max pair))
  20.                     secondLayer
  21.                     possiblePairs))]
  22.                 rest)
  23.         | _ -> 0
  24.    
  25.     getMaxSum parsed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement