From 217582a34d4c47c5b0bc6e137e6019f2485b741f Mon Sep 17 00:00:00 2001 From: Brian Chu Date: Wed, 30 Nov 2022 23:02:09 -0800 Subject: template scaffolding and day1 solution --- .gitignore | 4 ++++ AoC2022.fsproj | 10 ++++++++++ Program.fs | 14 ++++++++++++++ solutions/day1.fs | 19 +++++++++++++++++++ 4 files changed, 47 insertions(+) create mode 100644 .gitignore create mode 100644 AoC2022.fsproj create mode 100644 Program.fs create mode 100644 solutions/day1.fs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d3592bd --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.vscode +bin/ +obj/ +inputs/ \ No newline at end of file diff --git a/AoC2022.fsproj b/AoC2022.fsproj new file mode 100644 index 0000000..ab87952 --- /dev/null +++ b/AoC2022.fsproj @@ -0,0 +1,10 @@ + + + Exe + net6.0 + + + + + + \ No newline at end of file diff --git a/Program.fs b/Program.fs new file mode 100644 index 0000000..a16ec03 --- /dev/null +++ b/Program.fs @@ -0,0 +1,14 @@ +open Solutions +exception NotImplementedYet of string + +let args = System.Environment.GetCommandLineArgs() + +assert (Array.length args = 3) + +let day, part = int args[1], int args[2] + +match (day, part) with +| (1, 1) -> Day1.part1 () |> printf "%A\n" +| (1, 2) -> Day1.part2 () |> printf "%A\n" +| _ -> raise (NotImplementedYet("not implemented yet")) +|> printf "%A\n" \ No newline at end of file diff --git a/solutions/day1.fs b/solutions/day1.fs new file mode 100644 index 0000000..0b2c519 --- /dev/null +++ b/solutions/day1.fs @@ -0,0 +1,19 @@ +namespace Solutions + +module Day1 = + open System.IO + + let lines = File.ReadLines("inputs/day1.txt") + let totalWeights = seq { + let mutable subseq = 0 + + for line in lines do + if line.Equals("") then + yield subseq + subseq <- 0 + else + subseq <- subseq + int line + } + + let part1 () = totalWeights |> Seq.max + let part2 () = totalWeights |> Seq.sortDescending |> Seq.take 3 |> Seq.sum -- cgit 1.4.1-2-gfad0