advent-of-code-2022

My solutions for AoC 2022
git clone https://git.sr.ht/~jbauer/advent-of-code-2022
Log | Files | Refs | README | LICENSE

commit 4e5f9a4868c01aca0ef125c8cc50bbf6e208995c
parent cff39c9c29e8200f1e9ed1a293e894153c19ee87
Author: Jake Bauer <jbauer@paritybit.ca>
Date:   Fri, 16 Dec 2022 12:47:42 -0500

Improvements to Day 11

Diffstat:
Mday11/main.c | 26++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/day11/main.c b/day11/main.c @@ -1,7 +1,5 @@ #include <stdio.h> #include <stdlib.h> -#include <string.h> -#include <err.h> struct monkey { unsigned long items[32]; @@ -15,10 +13,10 @@ struct monkey { }; void -throwItem(struct monkey **monkeys, int from, int to, int itemIndex) +throwItem(struct monkey **monkeys, int from, int to) { - monkeys[to]->items[monkeys[to]->numItems++] = monkeys[from]->items[itemIndex]; - for (int i = itemIndex; i < monkeys[from]->numItems; i++) + monkeys[to]->items[monkeys[to]->numItems++] = monkeys[from]->items[0]; + for (int i = 0; i < monkeys[from]->numItems; i++) { monkeys[from]->items[i] = monkeys[from]->items[i+1]; } @@ -129,23 +127,23 @@ main (void) for (int j = 0; j < 8; j++) { monkeys[j]->inspections += monkeys[j]->numItems; - for(int k = 0; k < monkeys[j]->numItems;) + while (monkeys[j]->numItems > 0) { if (monkeys[j]->operator == '*' && monkeys[j]->operand == 0) - monkeys[j]->items[k] *= monkeys[j]->items[k]; + monkeys[j]->items[0] *= monkeys[j]->items[0]; else if (monkeys[j]->operator == '*') - monkeys[j]->items[k] *= monkeys[j]->operand; + monkeys[j]->items[0] *= monkeys[j]->operand; else - monkeys[j]->items[k] += monkeys[j]->operand; + monkeys[j]->items[0] += monkeys[j]->operand; - /* monkeys[j]->items[k] /= 3; */ - monkeys[j]->items[k] %= lcm; + /* monkeys[j]->items[0] /= 3; */ + monkeys[j]->items[0] %= lcm; - if (monkeys[j]->items[k] % monkeys[j]->modulus == 0) - throwItem(monkeys, j, monkeys[j]->trueMonkey, k); + if (monkeys[j]->items[0] % monkeys[j]->modulus == 0) + throwItem(monkeys, j, monkeys[j]->trueMonkey); else - throwItem(monkeys, j, monkeys[j]->falseMonkey, k); + throwItem(monkeys, j, monkeys[j]->falseMonkey); } } }