summaryrefslogtreecommitdiff
path: root/2024/OCaml/lib/day_01
diff options
context:
space:
mode:
Diffstat (limited to '2024/OCaml/lib/day_01')
-rw-r--r--2024/OCaml/lib/day_01/part_01.ml40
-rw-r--r--2024/OCaml/lib/day_01/part_02.ml44
2 files changed, 0 insertions, 84 deletions
diff --git a/2024/OCaml/lib/day_01/part_01.ml b/2024/OCaml/lib/day_01/part_01.ml
deleted file mode 100644
index 100b12a..0000000
--- a/2024/OCaml/lib/day_01/part_01.ml
+++ /dev/null
@@ -1,40 +0,0 @@
-(* Day 1: Part 1 *)
-
-let calculate_distance x y = Stdlib.abs (x - y)
-
-(** Require: left and right to be the same length *)
-let solve left right =
- let sorted_left = List.sort Stdlib.compare left in
- let sorted_right = List.sort Stdlib.compare right in
- let distances = List.map2 calculate_distance sorted_left sorted_right in
- List.fold_left ( + ) 0 distances
-
-let left line =
- let pos = 0 in
- let len = String.index line ' ' in
- String.sub line pos len
-
-let right line =
- let pos = String.rindex line ' ' + 1 in
- let len = String.length line - pos in
- String.sub line pos len
-
-let line_to_tuple line = (left line, right line)
-
-let lines_to_lists lines =
- let tuples = List.map line_to_tuple lines in
- let left =
- List.map
- (fun t ->
- let l, _ = t in
- int_of_string l)
- tuples
- in
- let right =
- List.map
- (fun t ->
- let _, r = t in
- int_of_string r)
- tuples
- in
- (left, right)
diff --git a/2024/OCaml/lib/day_01/part_02.ml b/2024/OCaml/lib/day_01/part_02.ml
deleted file mode 100644
index 25c8b7d..0000000
--- a/2024/OCaml/lib/day_01/part_02.ml
+++ /dev/null
@@ -1,44 +0,0 @@
-(* Day 1: Part 2 *)
-
-let rec count_occurrances_help element acc lst =
- match lst with
- | [] -> acc
- | h :: t ->
- if h = element then count_occurrances_help element (acc + 1) t
- else count_occurrances_help element acc t
-
-let count_occurrances element lst = count_occurrances_help element 0 lst
-
-let solve left right =
- List.map (fun x -> x * count_occurrances x right) left
- |> List.fold_left ( + ) 0
-
-let left line =
- let pos = 0 in
- let len = String.index line ' ' in
- String.sub line pos len
-
-let right line =
- let pos = String.rindex line ' ' + 1 in
- let len = String.length line - pos in
- String.sub line pos len
-
-let line_to_tuple line = (left line, right line)
-
-let lines_to_lists lines =
- let tuples = List.map line_to_tuple lines in
- let left =
- List.map
- (fun t ->
- let l, _ = t in
- int_of_string l)
- tuples
- in
- let right =
- List.map
- (fun t ->
- let _, r = t in
- int_of_string r)
- tuples
- in
- (left, right)