Create Git repo

This commit is contained in:
icaema 2023-12-01 18:09:44 -05:00
commit 7298e6d87b
9 changed files with 2160 additions and 0 deletions

25
day-01/Makefile Normal file
View File

@ -0,0 +1,25 @@
CC=gcc
CFLAGS=-Wall
run1: bin/part01
cat data/p01data.txt | bin/part01
run2: bin/part02
cat data/p02data.txt | bin/part02
test1: bin/part01
cat data/p01test.txt | bin/part01
test2: bin/part02
cat data/p02test.txt | bin/part02
bin/part01:
$(CC) src/part01.c -o bin/part01
bin/part02:
$(CC) src/part02.c -o bin/part02
.PHONY: clean
clean:
rm -f bin/*

BIN
day-01/bin/part01 Executable file

Binary file not shown.

1000
day-01/data/p01data.txt Normal file

File diff suppressed because it is too large Load Diff

5
day-01/data/p01test.txt Normal file
View File

@ -0,0 +1,5 @@
1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet

1000
day-01/data/p02data.txt Normal file

File diff suppressed because it is too large Load Diff

7
day-01/data/p02test.txt Normal file
View File

@ -0,0 +1,7 @@
two1nine
eightwothree
abcone2threexyz
xtwone3four
4nineeightseven2
zoneight234
7pqrstsixteen

42
day-01/src/part01.c Normal file
View File

@ -0,0 +1,42 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef DEBUG
#define debug_printf(...) do{ fprintf( stderr, __VA_ARGS__ ); } while( 0 )
#else
#define debug_printf(...) do{ } while ( 0 )
#endif
#define LINE_MAX 90
#define ASCII_0 48
#define ASCII_9 57
int isNum(char character){
return (character >=ASCII_0 && character <= ASCII_9);
}
int main(){
int linesProcessed = 0;
char line[LINE_MAX];
int sum = 0;
while (fgets(line, LINE_MAX, stdin) != NULL) {
linesProcessed++;
char firstNum = ' ';
char lastNum = ' ';
for (int i = 0; i < strlen(line); i++){
if (!isNum(line[i])) continue;
if (firstNum == ' ') firstNum=line[i];
lastNum = line[i];
}
char fullNum[3] = {firstNum, lastNum, '\0' };
debug_printf("fN: %c%c\n", firstNum, lastNum);
sum+=atoi(fullNum);
}
printf("\n Processed %d Lines\n", linesProcessed);
printf("===================================\n");
printf("Answer: \n%d\n", sum);
}

29
day-01/src/part01p.c Normal file
View File

@ -0,0 +1,29 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINE_MAX 90
int isNum(char character){
return (character >=48 && character <= 57);
}
int main(){
char line[LINE_MAX];
int sum = 0;
while (fgets(line, LINE_MAX, stdin) != NULL) {
char firstNum = ' ';
char lastNum = ' ';
for (int i = 0; i < strlen(line); i++){
if (!isNum(line[i])) continue;
if (firstNum == ' ') firstNum=line[i];
lastNum = line[i];
}
char fullNum[3] = {firstNum, lastNum, '\0' };
printf("fN: %c%c\n", firstNum, lastNum);
sum+=atoi(fullNum);
}
printf("answer sum: %d\n", sum);
}

52
day-01/src/part02.c Normal file
View File

@ -0,0 +1,52 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef DEBUG
#define debug_printf(...) do{ fprintf( stderr, __VA_ARGS__ ); } while( 0 )
#else
#define debug_printf(...) do{ } while ( 0 )
#endif
#define LINE_MAX 90
#define ASCII_0 48
#define ASCII_9 57
char *numberStrings[] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int isNum(char character){
return (character >=ASCII_0 && character <= ASCII_9);
}
int main(){
int linesProcessed = 0;
char line[LINE_MAX];
int sum = 0;
while (fgets(line, LINE_MAX, stdin) != NULL) {
linesProcessed++;
char firstNum = ' ';
char lastNum = ' ';
for(int i = 0; i< strlen(line); i++){
for (int repi=0; repi<9; repi++ ){
char *cNS = numberStrings[repi];
debug_printf("cNS=%s; strlen(cNS)=%d\n", cNS, strlen(cNS));
if (strncmp( &line[i], cNS, strlen(cNS) ) == 0) line[i] = ASCII_0+repi+1;
}
}
debug_printf("mutatedInputLine: %s", line);
for (int i = 0; i < strlen(line); i++){
if (!isNum(line[i])) continue;
if (firstNum == ' ') firstNum=line[i];
lastNum = line[i];
}
char fullNum[3] = {firstNum, lastNum, '\0' };
debug_printf("fN: %c%c\n", firstNum, lastNum);
sum+=atoi(fullNum);
}
printf("\n Processed %d Lines\n", linesProcessed);
printf("===================================\n");
printf("Answer: \n%d\n", sum);
}