From 73b0f48925e706b47adca1487f2744ff9c6bd7b6 Mon Sep 17 00:00:00 2001 From: Evan Burkey Date: Sat, 2 Dec 2023 07:09:52 -0800 Subject: [PATCH] update for 2023 --- .gitignore | 1 + CMakeLists.txt | 3 ++- generator.sh | 2 +- include/advent2023.h | 58 ++++++++++++++++++++++++++++++++++++++++++++ src/2023/01.c | 10 ++++++++ src/2023/02.c | 10 ++++++++ src/2023/03.c | 10 ++++++++ src/2023/04.c | 10 ++++++++ src/2023/05.c | 10 ++++++++ src/2023/06.c | 10 ++++++++ src/2023/07.c | 10 ++++++++ src/2023/08.c | 10 ++++++++ src/2023/09.c | 10 ++++++++ src/2023/10.c | 10 ++++++++ src/2023/11.c | 10 ++++++++ src/2023/12.c | 10 ++++++++ src/2023/13.c | 10 ++++++++ src/2023/14.c | 10 ++++++++ src/2023/15.c | 10 ++++++++ src/2023/16.c | 10 ++++++++ src/2023/17.c | 10 ++++++++ src/2023/18.c | 10 ++++++++ src/2023/19.c | 10 ++++++++ src/2023/20.c | 10 ++++++++ src/2023/21.c | 10 ++++++++ src/2023/22.c | 10 ++++++++ src/2023/23.c | 10 ++++++++ src/2023/24.c | 10 ++++++++ src/2023/25.c | 10 ++++++++ src/main.c | 6 ++++- 30 files changed, 317 insertions(+), 3 deletions(-) create mode 100644 include/advent2023.h create mode 100644 src/2023/01.c create mode 100644 src/2023/02.c create mode 100644 src/2023/03.c create mode 100644 src/2023/04.c create mode 100644 src/2023/05.c create mode 100644 src/2023/06.c create mode 100644 src/2023/07.c create mode 100644 src/2023/08.c create mode 100644 src/2023/09.c create mode 100644 src/2023/10.c create mode 100644 src/2023/11.c create mode 100644 src/2023/12.c create mode 100644 src/2023/13.c create mode 100644 src/2023/14.c create mode 100644 src/2023/15.c create mode 100644 src/2023/16.c create mode 100644 src/2023/17.c create mode 100644 src/2023/18.c create mode 100644 src/2023/19.c create mode 100644 src/2023/20.c create mode 100644 src/2023/21.c create mode 100644 src/2023/22.c create mode 100644 src/2023/23.c create mode 100644 src/2023/24.c create mode 100644 src/2023/25.c diff --git a/.gitignore b/.gitignore index e535478..c508b3f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build .clangd cmake-build-* tmpget.sh +get_day.sh \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c60228e..29e0301 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,10 +16,11 @@ file(GLOB SRC2019 src/2019/*.c) file(GLOB SRC2020 src/2020/*.c) file(GLOB SRC2021 src/2021/*.c) file(GLOB SRC2022 src/2022/*.c) +file(GLOB SRC2023 src/2023/*.c) file(COPY input DESTINATION ${CMAKE_BINARY_DIR}) -add_executable(advent ${SRC} ${SRC2015} ${SRC2016} ${SRC2017} ${SRC2018} ${SRC2019} ${SRC2020} ${SRC2021} ${SRC2022}) +add_executable(advent ${SRC} ${SRC2015} ${SRC2016} ${SRC2017} ${SRC2018} ${SRC2019} ${SRC2020} ${SRC2021} ${SRC2022} ${SRC2023}) if ((${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")) target_link_libraries(advent PRIVATE flint) diff --git a/generator.sh b/generator.sh index af2f38a..ffc3828 100755 --- a/generator.sh +++ b/generator.sh @@ -2,7 +2,7 @@ mkdir -p include -for year in {2015..2022}; do +for year in {2023..2023}; do rm -rf "src/${year}" mkdir -p "src/${year}" diff --git a/include/advent2023.h b/include/advent2023.h new file mode 100644 index 0000000..dcc2c9a --- /dev/null +++ b/include/advent2023.h @@ -0,0 +1,58 @@ +#ifndef ADVENT_2023_H +#define ADVENT_2023_H + +void advent2023day01(void); +void advent2023day02(void); +void advent2023day03(void); +void advent2023day04(void); +void advent2023day05(void); +void advent2023day06(void); +void advent2023day07(void); +void advent2023day08(void); +void advent2023day09(void); +void advent2023day10(void); +void advent2023day11(void); +void advent2023day12(void); +void advent2023day13(void); +void advent2023day14(void); +void advent2023day15(void); +void advent2023day16(void); +void advent2023day17(void); +void advent2023day18(void); +void advent2023day19(void); +void advent2023day20(void); +void advent2023day21(void); +void advent2023day22(void); +void advent2023day23(void); +void advent2023day24(void); +void advent2023day25(void); + +void (*solutions2023[25])(void) = { + advent2023day01, + advent2023day02, + advent2023day03, + advent2023day04, + advent2023day05, + advent2023day06, + advent2023day07, + advent2023day08, + advent2023day09, + advent2023day10, + advent2023day11, + advent2023day12, + advent2023day13, + advent2023day14, + advent2023day15, + advent2023day16, + advent2023day17, + advent2023day18, + advent2023day19, + advent2023day20, + advent2023day21, + advent2023day22, + advent2023day23, + advent2023day24, + advent2023day25 +}; + +#endif diff --git a/src/2023/01.c b/src/2023/01.c new file mode 100644 index 0000000..aa70fee --- /dev/null +++ b/src/2023/01.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day01(void) { + char *input = get_input("input/2023/01"); + printf("Solution for Day 01 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/02.c b/src/2023/02.c new file mode 100644 index 0000000..ab365cb --- /dev/null +++ b/src/2023/02.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day02(void) { + char *input = get_input("input/2023/02"); + printf("Solution for Day 02 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/03.c b/src/2023/03.c new file mode 100644 index 0000000..47c52cb --- /dev/null +++ b/src/2023/03.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day03(void) { + char *input = get_input("input/2023/03"); + printf("Solution for Day 03 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/04.c b/src/2023/04.c new file mode 100644 index 0000000..ebca28d --- /dev/null +++ b/src/2023/04.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day04(void) { + char *input = get_input("input/2023/04"); + printf("Solution for Day 04 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/05.c b/src/2023/05.c new file mode 100644 index 0000000..b03b644 --- /dev/null +++ b/src/2023/05.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day05(void) { + char *input = get_input("input/2023/05"); + printf("Solution for Day 05 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/06.c b/src/2023/06.c new file mode 100644 index 0000000..c1395d1 --- /dev/null +++ b/src/2023/06.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day06(void) { + char *input = get_input("input/2023/06"); + printf("Solution for Day 06 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/07.c b/src/2023/07.c new file mode 100644 index 0000000..8f21dd1 --- /dev/null +++ b/src/2023/07.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day07(void) { + char *input = get_input("input/2023/07"); + printf("Solution for Day 07 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/08.c b/src/2023/08.c new file mode 100644 index 0000000..3da34a6 --- /dev/null +++ b/src/2023/08.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day08(void) { + char *input = get_input("input/2023/08"); + printf("Solution for Day 08 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/09.c b/src/2023/09.c new file mode 100644 index 0000000..a62c542 --- /dev/null +++ b/src/2023/09.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day09(void) { + char *input = get_input("input/2023/09"); + printf("Solution for Day 09 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/10.c b/src/2023/10.c new file mode 100644 index 0000000..36e9e3f --- /dev/null +++ b/src/2023/10.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day10(void) { + char *input = get_input("input/2023/10"); + printf("Solution for Day 10 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/11.c b/src/2023/11.c new file mode 100644 index 0000000..5255835 --- /dev/null +++ b/src/2023/11.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day11(void) { + char *input = get_input("input/2023/11"); + printf("Solution for Day 11 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/12.c b/src/2023/12.c new file mode 100644 index 0000000..cf0be17 --- /dev/null +++ b/src/2023/12.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day12(void) { + char *input = get_input("input/2023/12"); + printf("Solution for Day 12 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/13.c b/src/2023/13.c new file mode 100644 index 0000000..8343699 --- /dev/null +++ b/src/2023/13.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day13(void) { + char *input = get_input("input/2023/13"); + printf("Solution for Day 13 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/14.c b/src/2023/14.c new file mode 100644 index 0000000..81c4d5d --- /dev/null +++ b/src/2023/14.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day14(void) { + char *input = get_input("input/2023/14"); + printf("Solution for Day 14 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/15.c b/src/2023/15.c new file mode 100644 index 0000000..d156446 --- /dev/null +++ b/src/2023/15.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day15(void) { + char *input = get_input("input/2023/15"); + printf("Solution for Day 15 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/16.c b/src/2023/16.c new file mode 100644 index 0000000..6805f70 --- /dev/null +++ b/src/2023/16.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day16(void) { + char *input = get_input("input/2023/16"); + printf("Solution for Day 16 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/17.c b/src/2023/17.c new file mode 100644 index 0000000..d614779 --- /dev/null +++ b/src/2023/17.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day17(void) { + char *input = get_input("input/2023/17"); + printf("Solution for Day 17 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/18.c b/src/2023/18.c new file mode 100644 index 0000000..11f565c --- /dev/null +++ b/src/2023/18.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day18(void) { + char *input = get_input("input/2023/18"); + printf("Solution for Day 18 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/19.c b/src/2023/19.c new file mode 100644 index 0000000..40963b4 --- /dev/null +++ b/src/2023/19.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day19(void) { + char *input = get_input("input/2023/19"); + printf("Solution for Day 19 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/20.c b/src/2023/20.c new file mode 100644 index 0000000..dd5c484 --- /dev/null +++ b/src/2023/20.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day20(void) { + char *input = get_input("input/2023/20"); + printf("Solution for Day 20 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/21.c b/src/2023/21.c new file mode 100644 index 0000000..9e0f028 --- /dev/null +++ b/src/2023/21.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day21(void) { + char *input = get_input("input/2023/21"); + printf("Solution for Day 21 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/22.c b/src/2023/22.c new file mode 100644 index 0000000..f2a53cf --- /dev/null +++ b/src/2023/22.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day22(void) { + char *input = get_input("input/2023/22"); + printf("Solution for Day 22 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/23.c b/src/2023/23.c new file mode 100644 index 0000000..96ced38 --- /dev/null +++ b/src/2023/23.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day23(void) { + char *input = get_input("input/2023/23"); + printf("Solution for Day 23 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/24.c b/src/2023/24.c new file mode 100644 index 0000000..7bb24bb --- /dev/null +++ b/src/2023/24.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day24(void) { + char *input = get_input("input/2023/24"); + printf("Solution for Day 24 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/2023/25.c b/src/2023/25.c new file mode 100644 index 0000000..0b613a8 --- /dev/null +++ b/src/2023/25.c @@ -0,0 +1,10 @@ +#include +#include + +#include "lfinput.h" + +void advent2023day25(void) { + char *input = get_input("input/2023/25"); + printf("Solution for Day 25 of 2023 is not completed yet\n"); + free(input); +} diff --git a/src/main.c b/src/main.c index 021b1fd..b23b8f8 100644 --- a/src/main.c +++ b/src/main.c @@ -15,6 +15,7 @@ #include "advent2020.h" #include "advent2021.h" #include "advent2022.h" +#include "advent2023.h" int main(int argc, char **argv) { if (argc != 3) { @@ -26,7 +27,7 @@ int main(int argc, char **argv) { char buf[32]; const char *errstr = NULL; - year = strtonum(argv[1], 15, 22, &errstr); + year = strtonum(argv[1], 15, 23, &errstr); if (NULL != errstr) { printf("Input error: %s\n\n", errstr); return 1; @@ -63,6 +64,9 @@ int main(int argc, char **argv) { case 22: solutions2022[day - 1](); break; + case 23: + solutions2023[day - 1](); + break; } return 0;