diff options
| author | DJ O'Leary <dijitol@proton.me> | 2025-11-29 20:23:02 +0100 |
|---|---|---|
| committer | DJ O'Leary <dijitol@proton.me> | 2025-11-29 20:23:02 +0100 |
| commit | 4c3a50166bf0f78ce89459c352cc1c6536a8b96d (patch) | |
| tree | 02e4b66a1435680ef1e92bf82576747b27f16447 /2024/OCaml/lib/day_05 | |
| parent | be2f8528b3829f8263507da301812d852297c168 (diff) | |
chore: make language folders snake_case
Diffstat (limited to '2024/OCaml/lib/day_05')
| -rw-r--r-- | 2024/OCaml/lib/day_05/part_01.ml | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/2024/OCaml/lib/day_05/part_01.ml b/2024/OCaml/lib/day_05/part_01.ml deleted file mode 100644 index f32bef1..0000000 --- a/2024/OCaml/lib/day_05/part_01.ml +++ /dev/null @@ -1,62 +0,0 @@ -(* Day 5: Part 1 *) - -module StringMap = Map.Make (String) - -let inverse_page_rule page_rule = - String.split_on_char '|' page_rule |> fun lst -> - match lst with [] -> "" | _ :: _ -> String.concat "|" (List.rev lst) - -(** [parse_aux acc page_rules] is a map of all invalid transitions as defined by - [page_rules] *) -let rec get_invalid_transitions_aux acc page_rules : unit StringMap.t = - match page_rules with - | [] -> acc - | h :: t -> - get_invalid_transitions_aux - (acc |> StringMap.add (inverse_page_rule h) ()) - t - -let get_invalid_transitions page_rules = - get_invalid_transitions_aux StringMap.empty page_rules - -(** [solve page_rules updates] is the solution for this puzzle, given the - [page_rules] and a list of [updates]. - - BELOW DOESN'T WORK: no guarantee that second page comes immediately after - the first - - pass in updates to solve - - make sliding window of 2 elements - - invert element order and concat - - check if key is in map from [parse page_rules], - - if yes, then it is an illegal transition - - if no, then add the list to a list for further processing *) -let solve page_rules _ = - let invalid_transitions = get_invalid_transitions page_rules in - () - -let _ = - solve - [ - "47|53"; - "97|13"; - "97|61"; - "97|47"; - "75|29"; - "61|13"; - "75|53"; - "29|13"; - "97|29"; - "53|29"; - "61|53"; - "97|53"; - "61|29"; - "47|13"; - "75|47"; - "97|75"; - "47|61"; - "75|61"; - "47|29"; - "75|13"; - "53|13"; - ] - [] |
