blob: 61cba2abffa504d7023a205529e9ddd6a3e5fb7a (
plain) (
tree)
|
|
open System.IO
open System.Text.RegularExpressions
let input = (File.ReadAllText "day9.txt").Trim()
let exclRegex = new Regex("!.")
let garbageRegex = new Regex("<.*?>")
let part1 input =
let stripped = garbageRegex.Replace(exclRegex.Replace(input, ""), "") |> String.filter (fun x -> x <> ',')
let rec sumLevels input level acc =
if input = "" then acc else
if input[0] = '{' then
sumLevels input[1..] (level + 1) (acc + level)
else
sumLevels input[1..] (level - 1) acc
sumLevels stripped 1 0|> printfn "%A"
let part2 input =
let stripped = exclRegex.Replace(input, "")
garbageRegex.Matches(stripped) |> Seq.map (fun x -> x.Groups[0].Value.Length - 2) |> Seq.sum |> printfn "%d"
part1 input
part2 input
|