summary refs log tree commit diff stats
path: root/day3.fsx
diff options
context:
space:
mode:
Diffstat (limited to 'day3.fsx')
-rw-r--r--day3.fsx20
1 files changed, 20 insertions, 0 deletions
diff --git a/day3.fsx b/day3.fsx
new file mode 100644
index 0000000..ef1a0d9
--- /dev/null
+++ b/day3.fsx
@@ -0,0 +1,20 @@
+open System.IO
+
+let lengths = [for line in File.ReadLines "day3.txt" do yield line.Split " " |> Seq.filter ((<>) "") |> Seq.map int |> Seq.toList]
+let isTriangle (sides: list<int>): bool =
+    let sorted = Seq.sort sides |> Seq.toArray
+    sorted[0] + sorted[1] > sorted[2]
+
+// part 1
+let triangles = Seq.filter isTriangle lengths
+Seq.length triangles |> printfn "%d"
+
+// part 2
+let colLengths = seq {
+    for row in 0..3..(Seq.length lengths - 1) do
+        for col in 0..2 do
+            yield [lengths[row][col];lengths[row+1][col]; lengths[row+2][col]]
+}
+
+let colTriangles = Seq.filter isTriangle colLengths
+Seq.length colTriangles |> printfn "%d"
\ No newline at end of file