summaryrefslogtreecommitdiff
path: root/2024/ocaml/lib/day_05
diff options
context:
space:
mode:
Diffstat (limited to '2024/ocaml/lib/day_05')
-rw-r--r--2024/ocaml/lib/day_05/part_01.ml62
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";
- ]
- []