From 736823f313bd2e00e49a1b52aaf0ea68a79db438 Mon Sep 17 00:00:00 2001 From: Vincent Douillet Date: Fri, 3 Dec 2021 17:01:37 +0100 Subject: improve input handling & merge part 1 and 2 for the first days --- 01.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 01.c (limited to '01.c') diff --git a/01.c b/01.c new file mode 100644 index 0000000..33c52aa --- /dev/null +++ b/01.c @@ -0,0 +1,43 @@ +#include +#include +#include "input.h" + +#define INPUT "input/01.txt" + +void part1(struct input_int* input) { + // compute depth variations + int result = 0; + for(size_t i = 1; i < input->line_count; i++) { + if(input->lines[i] > input->lines[i-1]) + result++; + } + printf("%d\n", result); +} + +void part2(struct input_int* input) { + // compute depth variations + int result = 0; + int windowSum = input->lines[0] + input->lines[1] + input->lines[2]; + for(size_t i = 1; i < input->line_count - 2; i++) { + int newWindowSum = input->lines[i] + input->lines[i+1] + input->lines[i+2]; + if(newWindowSum > windowSum) + result++; + + windowSum = newWindowSum; + } + printf("%d\n", result); +} + +int main() { + // read input + struct input_int input; + input_int_read(&input, INPUT); + + // do stuff + part1(&input); + part2(&input); + + // cleanup & exit + input_int_free(&input); + return 0; +} -- cgit v1.2.3