diff --git a/Day1.cs b/Day1.cs index 2303011..b91930e 100644 --- a/Day1.cs +++ b/Day1.cs @@ -1,4 +1,4 @@ -#define Day1 +// #define Day1 #if Day1 var scans = File.ReadAllLines("day1/input").Select(int.Parse).ToList(); Console.WriteLine(Enumerable.Range(1, scans.Count - 1).Count(i => scans[i - 1] < scans[i])); diff --git a/Day2.cs b/Day2.cs index 0ea7991..0c5793c 100644 --- a/Day2.cs +++ b/Day2.cs @@ -1,4 +1,43 @@ -// #define Day2 +#define Day2 #if Day2 -var toBeDefined = File.ReadAllLines("day2/input"); +long f = 0; +long d = 0; +var linesSplit = File.ReadAllLines("day2/input") + .Select(l => l.Split(" ")) + .Select(lineParts => new { op = lineParts[0], x = long.Parse(lineParts[1]) }) + .ToList(); + +linesSplit.ForEach(v => { + switch (v.op) { + case "down": + d += v.x; + break; + case "up": + d -= v.x; + break; + default: + f += v.x; + break; + } +}); +Console.WriteLine(f * d); + +f = 0; +d = 0; +long aim = 0; +linesSplit.ForEach(v => { + switch (v.op) { + case "down": + aim += v.x; + break; + case "up": + aim -= v.x; + break; + default: + f += v.x; + d += aim * v.x; + break; + } +}); +Console.WriteLine(f * d); #endif \ No newline at end of file diff --git a/day2/input b/day2/input new file mode 100644 index 0000000..9fbf11d --- /dev/null +++ b/day2/input @@ -0,0 +1,1000 @@ +forward 6 +down 3 +forward 8 +down 5 +forward 9 +down 2 +up 9 +down 9 +forward 8 +down 3 +down 8 +forward 2 +down 1 +up 3 +up 6 +up 9 +down 7 +up 7 +down 1 +forward 7 +down 7 +up 4 +down 2 +forward 8 +up 3 +up 1 +down 1 +down 6 +up 2 +down 5 +forward 4 +down 5 +down 3 +forward 4 +down 3 +up 8 +forward 1 +up 9 +forward 2 +up 7 +down 2 +down 9 +down 1 +down 6 +down 8 +down 6 +down 1 +down 1 +down 9 +down 9 +down 2 +forward 9 +down 1 +forward 4 +down 2 +forward 6 +down 8 +forward 4 +forward 8 +forward 4 +forward 4 +up 4 +up 9 +down 6 +forward 2 +forward 5 +down 2 +forward 1 +down 9 +forward 2 +down 8 +down 2 +forward 5 +down 7 +forward 7 +down 4 +up 3 +down 9 +forward 3 +down 7 +up 4 +down 5 +down 4 +forward 8 +down 2 +down 2 +forward 9 +down 9 +down 5 +down 1 +down 5 +forward 5 +down 1 +up 7 +down 2 +forward 7 +forward 6 +forward 5 +forward 4 +down 3 +forward 9 +up 1 +down 1 +up 8 +down 4 +down 7 +forward 2 +down 1 +up 9 +up 3 +down 4 +down 1 +down 9 +down 4 +forward 4 +forward 7 +down 7 +down 1 +up 6 +forward 8 +down 8 +forward 2 +down 4 +up 4 +forward 3 +down 1 +up 8 +up 2 +forward 3 +forward 5 +forward 7 +down 5 +up 2 +down 6 +forward 9 +forward 3 +down 1 +forward 7 +up 1 +down 4 +up 2 +forward 5 +down 1 +forward 2 +down 3 +forward 9 +down 1 +down 6 +down 7 +up 9 +down 5 +down 1 +forward 5 +forward 7 +down 6 +forward 1 +down 3 +forward 3 +forward 1 +down 7 +forward 9 +forward 7 +forward 4 +up 1 +down 8 +up 8 +down 3 +forward 9 +up 2 +down 4 +down 4 +down 3 +forward 7 +forward 3 +down 5 +up 4 +up 7 +down 6 +forward 2 +down 2 +down 9 +down 9 +down 7 +down 7 +forward 5 +forward 8 +up 2 +forward 9 +forward 5 +down 2 +up 6 +down 2 +up 2 +down 6 +down 3 +down 2 +down 3 +down 9 +forward 6 +up 9 +down 3 +forward 9 +forward 4 +forward 1 +down 3 +down 4 +forward 8 +forward 4 +down 7 +forward 9 +forward 2 +forward 9 +down 2 +down 3 +down 1 +down 6 +forward 5 +down 3 +forward 1 +down 3 +forward 7 +down 3 +forward 3 +up 2 +up 8 +down 2 +down 3 +down 7 +forward 6 +forward 7 +up 5 +forward 4 +forward 6 +down 1 +forward 1 +forward 9 +down 2 +down 8 +forward 6 +down 8 +down 5 +forward 9 +forward 3 +down 6 +forward 3 +forward 1 +up 7 +down 2 +down 9 +up 6 +forward 7 +down 9 +up 8 +forward 5 +forward 2 +forward 9 +down 3 +up 7 +forward 7 +down 4 +up 6 +up 5 +forward 6 +forward 2 +down 9 +forward 9 +forward 3 +down 4 +forward 5 +forward 4 +forward 4 +down 8 +forward 4 +forward 2 +up 8 +down 8 +forward 6 +up 4 +down 7 +forward 8 +up 9 +forward 3 +forward 5 +forward 8 +down 5 +up 6 +up 6 +down 5 +forward 2 +down 3 +up 1 +down 8 +forward 3 +down 4 +up 9 +forward 8 +forward 5 +forward 2 +forward 6 +forward 8 +up 5 +forward 5 +down 2 +down 4 +down 8 +forward 3 +up 9 +down 1 +down 9 +forward 7 +forward 9 +down 4 +down 2 +forward 3 +down 1 +forward 2 +down 2 +down 5 +forward 2 +forward 3 +forward 9 +down 2 +forward 3 +forward 9 +forward 6 +forward 7 +down 6 +forward 5 +up 7 +forward 6 +up 1 +down 7 +down 6 +down 3 +down 7 +forward 2 +forward 8 +forward 3 +down 3 +forward 7 +down 3 +up 8 +forward 1 +down 5 +down 9 +down 6 +forward 1 +forward 1 +down 1 +down 1 +forward 8 +forward 7 +forward 1 +up 2 +down 4 +up 7 +down 3 +up 8 +up 7 +forward 3 +up 9 +down 5 +forward 4 +down 6 +up 8 +forward 6 +forward 7 +down 1 +up 7 +down 9 +down 9 +up 9 +forward 7 +down 6 +down 4 +down 6 +down 7 +down 7 +up 7 +down 4 +up 7 +forward 1 +down 8 +down 3 +down 2 +forward 9 +up 7 +down 1 +down 2 +forward 1 +forward 5 +down 7 +up 4 +down 7 +down 4 +down 5 +up 8 +down 6 +down 2 +down 4 +up 5 +down 8 +down 3 +down 9 +forward 6 +forward 5 +down 1 +down 3 +down 2 +down 3 +forward 8 +forward 4 +forward 6 +forward 9 +up 1 +forward 6 +forward 8 +down 2 +down 1 +forward 4 +forward 2 +forward 3 +forward 2 +forward 5 +forward 2 +forward 7 +down 5 +forward 2 +forward 3 +forward 9 +down 3 +down 4 +down 7 +down 9 +down 5 +forward 5 +down 4 +down 8 +up 3 +forward 1 +forward 2 +forward 6 +up 2 +down 9 +down 8 +up 8 +up 3 +forward 2 +down 6 +forward 9 +down 3 +down 3 +forward 7 +down 5 +forward 2 +down 4 +down 1 +forward 1 +down 5 +up 4 +down 2 +forward 8 +down 9 +down 5 +up 4 +forward 9 +down 3 +down 8 +forward 8 +forward 9 +forward 3 +up 5 +forward 6 +down 7 +forward 5 +down 4 +down 9 +down 1 +up 4 +down 8 +forward 4 +up 4 +forward 4 +forward 8 +forward 3 +forward 6 +down 9 +forward 5 +up 4 +forward 8 +forward 2 +down 2 +down 1 +up 3 +forward 5 +down 3 +down 6 +forward 7 +down 8 +down 1 +forward 9 +down 8 +forward 7 +forward 7 +forward 7 +up 9 +up 5 +forward 5 +forward 2 +down 4 +up 8 +up 7 +forward 5 +forward 3 +forward 7 +up 1 +down 2 +up 1 +forward 3 +up 8 +down 3 +forward 1 +forward 5 +forward 2 +forward 5 +down 8 +up 1 +forward 9 +down 3 +down 7 +up 5 +down 5 +down 1 +down 4 +down 6 +up 9 +forward 5 +forward 3 +down 8 +down 7 +forward 3 +down 9 +forward 8 +down 3 +up 2 +up 7 +forward 3 +down 9 +down 5 +down 9 +up 6 +down 9 +down 1 +down 1 +up 4 +up 5 +up 6 +forward 5 +down 3 +up 1 +forward 9 +forward 8 +forward 8 +forward 3 +forward 5 +forward 8 +forward 1 +down 8 +up 7 +down 3 +forward 9 +forward 1 +up 8 +down 7 +up 4 +down 2 +down 5 +forward 3 +down 5 +forward 8 +forward 4 +down 6 +up 7 +up 7 +forward 8 +down 6 +down 8 +down 9 +forward 8 +forward 1 +forward 6 +up 2 +up 1 +up 8 +forward 8 +forward 1 +forward 4 +forward 7 +forward 2 +down 7 +down 8 +up 5 +up 4 +up 4 +up 7 +forward 3 +down 2 +up 5 +down 8 +forward 6 +up 9 +forward 1 +down 2 +forward 7 +down 4 +down 6 +down 3 +down 7 +down 9 +down 3 +forward 1 +forward 5 +down 2 +down 6 +up 7 +up 2 +up 3 +up 5 +forward 9 +down 6 +up 1 +down 1 +forward 3 +forward 5 +up 8 +forward 5 +forward 9 +up 5 +up 4 +down 6 +up 8 +down 8 +down 7 +down 2 +down 6 +up 1 +up 1 +forward 8 +down 4 +up 3 +down 2 +down 1 +forward 2 +down 4 +down 6 +forward 2 +up 8 +forward 9 +up 1 +up 4 +forward 2 +down 9 +down 4 +forward 7 +forward 6 +forward 2 +forward 2 +forward 5 +forward 6 +down 3 +forward 1 +up 9 +forward 2 +down 3 +down 1 +down 3 +up 9 +forward 5 +up 5 +up 7 +down 5 +down 4 +down 9 +down 3 +down 3 +down 9 +down 4 +down 3 +down 9 +forward 9 +down 1 +down 6 +down 7 +down 7 +down 5 +down 8 +down 5 +forward 1 +forward 3 +up 1 +forward 2 +up 5 +up 8 +down 1 +up 8 +up 6 +up 4 +up 1 +forward 3 +forward 2 +forward 4 +up 3 +down 6 +down 1 +down 6 +up 8 +up 7 +forward 8 +down 9 +down 3 +forward 2 +forward 8 +forward 8 +down 1 +forward 9 +down 2 +down 3 +down 9 +down 2 +forward 8 +down 2 +down 6 +forward 8 +forward 1 +up 1 +forward 3 +down 5 +down 6 +down 5 +down 4 +forward 6 +forward 3 +down 7 +down 8 +down 7 +up 7 +down 9 +down 8 +forward 6 +down 1 +forward 8 +forward 9 +up 4 +down 1 +forward 1 +forward 9 +down 4 +down 2 +forward 4 +down 5 +forward 4 +down 7 +forward 6 +down 3 +forward 3 +forward 2 +forward 7 +down 2 +forward 2 +down 3 +up 9 +forward 4 +forward 1 +forward 8 +forward 8 +forward 6 +forward 7 +up 8 +down 4 +up 6 +forward 3 +up 8 +forward 3 +forward 1 +forward 3 +forward 9 +up 2 +up 5 +forward 8 +forward 6 +forward 6 +forward 4 +down 6 +forward 7 +forward 3 +forward 2 +forward 2 +forward 6 +forward 5 +down 7 +up 1 +forward 5 +up 1 +up 9 +forward 5 +up 3 +forward 1 +down 2 +up 2 +down 4 +forward 7 +forward 4 +forward 1 +down 1 +up 4 +down 4 +up 2 +up 5 +down 5 +forward 7 +up 1 +down 6 +up 4 +forward 3 +forward 8 +down 6 +forward 4 +down 2 +down 3 +down 5 +down 4 +down 9 +up 4 +forward 5 +up 1 +up 2 +forward 7 +forward 2 +up 1 +down 8 +forward 4 +forward 4 +up 8 +down 3 +down 4 +up 7 +down 8 +down 6 +down 2 +down 3 +forward 9 +forward 7 +forward 6 +down 2 +down 7 +forward 5 +forward 2 +up 5 +down 5 +forward 5 +down 3 +down 1 +forward 4 +forward 3 +down 2 +up 1 +down 3 +down 5 +forward 6 +forward 5 +up 5 +down 3 +forward 8 +down 9 +up 4 +up 4 +down 8 +forward 5 +down 7 +down 3 +up 1 +down 4 +down 5 +forward 4 +forward 2 +forward 4 +up 9 +down 5 +forward 4 +forward 6 +forward 9 +forward 7 +forward 5 +forward 6 +up 4 +forward 8 +down 4 +forward 4 +forward 6 +up 8 +down 4 +forward 3 +down 8 +forward 4 +down 9 +forward 5 +down 4 +up 8 +forward 2 +down 6 +up 3 +down 5 +down 1 +down 6 +down 9 +forward 9 +down 1 +down 5 +up 8 +forward 5 +down 6 +down 9 +forward 1 +down 6 +down 8 +down 1 +down 2 +down 1 +forward 5 +up 7 +forward 5 +down 2 +down 4 +down 1 +forward 7 +down 7 +down 8 +forward 4 +forward 7 +down 2 +down 3 +forward 2 +up 9 +down 4 +down 5 +forward 4 +forward 4 +forward 6 +down 5 +forward 8 +down 9 +forward 8 +down 7 +up 7 +forward 9 +up 1 +forward 4 +up 3 +down 2 +down 4 +down 5 +forward 2 +forward 8 +up 3 +up 1 +down 1 +forward 7 +forward 9 +forward 6 +up 1 +down 2 +forward 1 +up 5 +forward 3 +down 7 +down 6 +forward 9 +forward 6 +forward 3 +forward 8 +down 2 +down 7 +forward 1 +down 6 +up 3 +down 6 +down 9 +up 2 +forward 8 +forward 1 +down 9 +forward 8 +forward 8 +down 3 +up 9 +down 6 +up 3 +forward 3 +forward 5 +forward 7