summaryrefslogtreecommitdiff
path: root/2024/OCaml/bin
diff options
context:
space:
mode:
Diffstat (limited to '2024/OCaml/bin')
-rw-r--r--2024/OCaml/bin/dune5
-rw-r--r--2024/OCaml/bin/main.ml46
2 files changed, 51 insertions, 0 deletions
diff --git a/2024/OCaml/bin/dune b/2024/OCaml/bin/dune
new file mode 100644
index 0000000..ee36b46
--- /dev/null
+++ b/2024/OCaml/bin/dune
@@ -0,0 +1,5 @@
+(executable
+ (public_name AoC_2024)
+ (name main)
+ (modes byte exe)
+ (libraries AoC_2024))
diff --git a/2024/OCaml/bin/main.ml b/2024/OCaml/bin/main.ml
new file mode 100644
index 0000000..a76e046
--- /dev/null
+++ b/2024/OCaml/bin/main.ml
@@ -0,0 +1,46 @@
+open AoC_2024
+
+let day_to_path day =
+ let string_day = string_of_int day in
+ let formatted_day = if day < 10 then "0" ^ string_day else string_day in
+ "../_input/day_" ^ formatted_day ^ ".txt"
+
+let print_solution day_num part_num answer =
+ print_string "D";
+ print_int day_num;
+ print_string ":P";
+ print_int part_num;
+ print_string " -> ";
+ print_int answer;
+ print_newline ()
+
+let day_1 =
+ let lines = File.Read_input.lines_from_file (day_to_path 1) in
+ let left, right = Day_01.Part_01.lines_to_lists lines in
+ let part_01 = Day_01.Part_01.solve left right in
+ print_solution 1 1 part_01;
+ let part_02 = Day_01.Part_02.solve left right in
+ print_solution 1 2 part_02
+
+let day_2 =
+ let lines = File.Read_input.lines_from_file (day_to_path 2) in
+ let reports = Day_02.Part_01.lines_to_reports lines in
+ let part_01 = Day_02.Part_01.solve reports in
+ print_solution 2 1 part_01
+
+let day_3 =
+ let lines = File.Read_input.lines_from_file (day_to_path 3) in
+ let line = List.fold_left (fun acc line -> acc ^ line) "" lines in
+ let part_01 = Day_03.Part_01.solve line in
+ print_solution 3 1 part_01
+
+let day_4 =
+ let lines = File.Read_input.lines_from_file (day_to_path 4) in
+ let part_01 = Day_04.Part_01.solve lines in
+ print_solution 4 1 part_01
+
+let _ =
+ day_1;
+ day_2;
+ day_3;
+ day_4