mirror of
https://github.com/peter-tanner/advent-of-code-2021.git
synced 2024-11-30 11:10:20 +08:00
Day 2 solutions
This commit is contained in:
parent
f717130799
commit
50efc984f9
32
2/2-1.c
Normal file
32
2/2-1.c
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
FILE *p_file = fopen("input", "r");
|
||||||
|
char instruction[50];
|
||||||
|
|
||||||
|
int horizontal, depth = 0;
|
||||||
|
|
||||||
|
while (fgets(instruction, sizeof instruction, p_file) != NULL)
|
||||||
|
{
|
||||||
|
char direction[50];
|
||||||
|
int *amount = malloc(sizeof(int));
|
||||||
|
if (sscanf(instruction, "%s %i", direction, amount) != 2)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
if (strcmp(direction, "up") == 0)
|
||||||
|
(*amount) *= -1;
|
||||||
|
if (strcmp(direction, "forward") == 0)
|
||||||
|
{
|
||||||
|
horizontal += *amount;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
depth += *amount;
|
||||||
|
}
|
||||||
|
// printf("POSITION horizontal %d, depth %d\n", horizontal, depth);
|
||||||
|
}
|
||||||
|
printf("%d\n", depth * horizontal);
|
||||||
|
return 0;
|
||||||
|
}
|
36
2/2-2.c
Normal file
36
2/2-2.c
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main(int argc, char const *argv[])
|
||||||
|
{
|
||||||
|
FILE *p_file = fopen("input", "r");
|
||||||
|
char instruction[50];
|
||||||
|
|
||||||
|
int horizontal, depth, aim = 0;
|
||||||
|
|
||||||
|
while (fgets(instruction, sizeof instruction, p_file) != NULL)
|
||||||
|
{
|
||||||
|
char direction[50];
|
||||||
|
int *amount = malloc(sizeof(int));
|
||||||
|
if (sscanf(instruction, "%s %i", direction, amount) != 2)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
if (strcmp(direction, "up") == 0)
|
||||||
|
{
|
||||||
|
aim -= *amount;
|
||||||
|
}
|
||||||
|
else if (strcmp(direction, "down") == 0)
|
||||||
|
{
|
||||||
|
aim += *amount;
|
||||||
|
}
|
||||||
|
else // FORWARD
|
||||||
|
{
|
||||||
|
horizontal += *amount;
|
||||||
|
depth += (*amount) * aim;
|
||||||
|
}
|
||||||
|
// printf("POSITION horizontal %d\t depth %d\t aim %d\n",
|
||||||
|
// horizontal, depth, aim);
|
||||||
|
}
|
||||||
|
printf("%d\n", depth * horizontal);
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user