From 222aecb34edcb4c2694de34bb60cff3384676226 Mon Sep 17 00:00:00 2001 From: Filip Rojek Date: Tue, 9 Dec 2025 22:43:42 +0100 Subject: [PATCH] day2p2 completed --- day1/day1p2 | Bin 0 -> 23160 bytes day1/day1p2.c | 96 ++++++++++++++++++++++++++++++++++++++ day1/input_day2.tests.txt | 9 ++++ 3 files changed, 105 insertions(+) create mode 100755 day1/day1p2 create mode 100644 day1/day1p2.c create mode 100644 day1/input_day2.tests.txt diff --git a/day1/day1p2 b/day1/day1p2 new file mode 100755 index 0000000000000000000000000000000000000000..f17daac788226387f86053a6cccbd2bd980a5a39 GIT binary patch literal 23160 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 literal 0 HcmV?d00001 diff --git a/day1/day1p2.c b/day1/day1p2.c new file mode 100644 index 0000000..9fc9e58 --- /dev/null +++ b/day1/day1p2.c @@ -0,0 +1,96 @@ +/* + Dial from 0–99, start at 50. + You get lines like L68 or R5: + L = move left (subtract) + R = move right (add) + Wrap around with modulo 100. + After each move, check if the dial is on 0. + The password = how many times you land on 0 during the whole sequence. +*/ +#include +#include + +int main(int argc, char* argv[]) { + printf("Advent Of Code Day 1 part 2\n\n"); + + // remove argc so gcc wont cry + (void)argc; + + // base vars + int start = 50; + int pos = start; + int counter = 0; + + // read the input file + char* inpf = NULL; + inpf = argv[1]; + if (inpf == NULL) inpf = "input.txt"; + + FILE* ptr = fopen(inpf, "r"); + if(ptr == NULL) { + printf("error: no such file %s\n", inpf); + return 1; + } + + + printf("first position: %d\n", pos); + // process instructions + char line[9]; // 8 chars + eol + while(fscanf(ptr, "%9s", line) == 1) { + char drc = line[0]; + int num = atoi(&line[1]); + printf("%c %d\n", drc, num); + + //if (drc == 'R') pos += num; + //if (drc == 'L') pos -= num; + + if (drc == 'R') { + for(int i = 0; i < num; i++) { + if (pos + 1 < 100) { + pos += 1; + } else { + pos += 1; + pos -= 100; + //printf("overflow -=100\n"); + } + if (pos == 0) counter++; + } + } + + if (drc == 'L') { + for (int i = 0; i < num; i++) { + if (pos - 1 >= 0) { + pos -= 1; + } else { + pos -= 1; + pos += 100; + } + if (pos == 0) counter++; + } + } + + while (pos > 99) { + //pos -= 100; + for (int i = 0; i < 100; i++) { + if (pos == 0) counter++; + pos -= 1; + } + } + while (pos < 0){ + //pos += 100; + for (int i = 0; i < 100; i++) { + if (pos == 0) counter++; + pos += 1; + } + } + + //if (pos == 0) counter++; + + printf("current position: %d\n", pos); + printf("counter is: %d\n", counter); + } + + //printf("current position: %d\n", pos); + printf("\npassword is: %d\n", counter); + return 0; +} diff --git a/day1/input_day2.tests.txt b/day1/input_day2.tests.txt new file mode 100644 index 0000000..290e520 --- /dev/null +++ b/day1/input_day2.tests.txt @@ -0,0 +1,9 @@ +R1000 +L1000 +L50 +R1 +L1 +L1 +R1 +R100 +R1