diff options
Diffstat (limited to 'day3.fsx')
-rw-r--r-- | day3.fsx | 20 |
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 |