2015-01,02

This commit is contained in:
Evan Burkey 2021-09-01 15:39:09 -07:00
parent 124caba42b
commit 2ec11ae8a5
4 changed files with 56 additions and 4 deletions

7
include/advent_math.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef ADVENT_MATH_H_
#define ADVENT_MATH_H_
int int_max(int, int);
int int_min(int, int);
#endif // ADVENT_MATH_H_

View File

@ -1,10 +1,29 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "input.h"
void advent2015day01(void) {
char *input = get_input("input/2015/01");
printf("Solution for Day 01 of 2015 is not completed yet\n");
char *c = input;
int f = 0, b = 0, s = 1;
while (*c != '\0') {
if (*c == '(') {
++f;
} else {
--f;
}
if (f == -1 && b == 0) {
b = s;
}
++c;
++s;
}
printf("%d\n%d\n", f, b);
free(input);
}

View File

@ -1,10 +1,27 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "input.h"
#include "advent_math.h"
void advent2015day02(void) {
char *input = get_input("input/2015/02");
printf("Solution for Day 02 of 2015 is not completed yet\n");
free(input);
size_t sz = 0;
char **lines = get_lines("input/2015/02", &sz);
int paper = 0, ribbon = 0;
for (size_t i = 0; i < sz; i++) {
char *t = strtok(lines[i], "x");
int w = atoi(t);
t = strtok(NULL, "x");
int l = atoi(t);
t = strtok(NULL, "x");
int h = atoi(t);
paper += 2*l*w + 2*w*h + 2*h*l + int_min(w*l, int_min(l*h, h*w));
ribbon += l*w*h + int_min(w+w+h+h, int_min(h+h+l+l, l+l+w+w));
}
printf("%d\n%d\n", paper, ribbon);
del_lines(lines);
}

9
src/advent_math.c Normal file
View File

@ -0,0 +1,9 @@
#include "advent_math.h"
int int_max(int a, int b) {
return a > b ? a : b;
}
int int_min(int a, int b) {
return a < b ? a : b;
}