Optimization and cleanup
This commit is contained in:
parent
91fb1b03cc
commit
b8a1300703
@ -4,11 +4,14 @@
|
||||
|
||||
#include "../../lib/aoc.h"
|
||||
|
||||
// TODO figure this out dynamically
|
||||
#define ARRAY_SIZE 1000
|
||||
|
||||
int main() {
|
||||
char *line;
|
||||
|
||||
int left[1000];
|
||||
int right[1000];
|
||||
int left[ARRAY_SIZE];
|
||||
int right[ARRAY_SIZE];
|
||||
int index = 0;
|
||||
|
||||
while ((line = aoc_read_line()) != NULL) {
|
||||
@ -19,22 +22,25 @@ int main() {
|
||||
index++;
|
||||
}
|
||||
|
||||
qsort(left, 1000, sizeof(int), aoc_sort_int);
|
||||
qsort(right, 1000, sizeof(int), aoc_sort_int);
|
||||
qsort(left, ARRAY_SIZE, sizeof(int), aoc_sort_int);
|
||||
qsort(right, ARRAY_SIZE, sizeof(int), aoc_sort_int);
|
||||
|
||||
int sum = 0;
|
||||
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
for (int i = 0; i < ARRAY_SIZE; i++) {
|
||||
sum += abs(left[i] - right[i]);
|
||||
}
|
||||
|
||||
printf("Part 1: %d\n", sum);
|
||||
|
||||
int similarity_score = 0;
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
int j = 0;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE; i++) {
|
||||
int right_count = 0;
|
||||
for (int j = 0; j < 1000; j++) {
|
||||
for (; j < ARRAY_SIZE; j++) {
|
||||
if (left[i] == right[j]) right_count++;
|
||||
else if (left[i] < right[j]) break;
|
||||
}
|
||||
similarity_score += (left[i] * right_count);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user