diff options
| author | Bond_009 <bond.009@outlook.com> | 2022-12-01 22:30:22 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2022-12-01 22:30:22 +0100 |
| commit | baf4910870a6e8999802b9a4a22eabd4142a34e3 (patch) | |
| tree | 2d11443dc21e53bd0d99d015cf789937d6d95862 /12/part2.c | |
| parent | 49d0c908f24b2c193c9deed1716fe36061ba26a1 (diff) | |
Move all Advent of Codes into one repo
Diffstat (limited to '12/part2.c')
| -rw-r--r-- | 12/part2.c | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/12/part2.c b/12/part2.c deleted file mode 100644 index 745b56c..0000000 --- a/12/part2.c +++ /dev/null @@ -1,66 +0,0 @@ -#include <stdio.h> -#include <stdint.h> -#include <stdlib.h> -#include <malloc.h> -#include <string.h> - -#include "../utils.h" - -int solve(const char *filename) -{ - FILE *file = fopen(filename, "r"); - - // Include space for newline and string terminator - char buffer[8] = { 0 }; - - int w_x = 10; - int w_y = 1; - int y = 0; - int x = 0; - while (fgets(buffer, 8, file)) { - int n = atoi(buffer + 1); - switch (buffer[0]) { - case 'N': - w_y += n; - break; - case 'E': - w_x += n; - break; - case 'S': - w_y -= n; - break; - case 'W': - w_x -= n; - break; - case 'F': - for (int i = 0; i < n; i++) { - x += w_y; - y += w_x; - } - break; - case 'R': - for (int i = 0; i < n / 90; i++) { - SWAP(w_y, w_x); - w_y = -w_y; - } - break; - case 'L': - for (int i = 0; i < n / 90; i++) { - SWAP(w_y, w_x); - w_x = -w_x; - } - break; - default: - break; - } - } - - fclose(file); - - return abs(x) + abs(y); -} - -int main(int argc, char *argv[]) -{ - printf("%i\n", solve(argv[argc - 1])); -} |
