Day 1 solution

This commit is contained in:
2022-12-01 07:17:05 -06:00
parent 756d8e519a
commit e2c78ecc45
2 changed files with 2262 additions and 2038 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,61 +2,32 @@
internal class Day01 : Day internal class Day01 : Day
{ {
IEnumerable<string>? lines; List<List<int>> lines = new();
internal override void Parse() internal override void Parse()
{ {
lines = Util.ReadAllLines("01"); List<int> calories = new();
foreach (var line in Util.ReadAllLines("01"))
{
if (string.IsNullOrEmpty(line))
{
lines.Add(new(calories));
calories.Clear();
continue;
}
calories.Add(int.Parse(line));
}
lines.Add(new(calories));
} }
internal override string Part1() internal override string Part1()
{ {
int lastDepth = 0; return $"Most calories: <+white>{lines.Max(x => x.Sum())}";
int numIncreased = -1;
foreach (var line in lines!)
{
var depth = Convert.ToInt32(line);
if (depth > lastDepth)
{
numIncreased++;
}
lastDepth = depth;
}
return $"<+white>{numIncreased}";
} }
internal override string Part2() internal override string Part2()
{ {
int lastTotal = 0; return $"Sum of top 3: <+white>{lines.OrderByDescending(x => x.Sum()).Take(3).Sum(x => x.Sum())}";
int numIncreased = -1;
int num1 = -1;
int num2 = -1;
int num3 = -1;
foreach (var line in lines!)
{
var depth = Convert.ToInt32(line);
num1 = num2;
num2 = num3;
num3 = depth;
if (num1 < 0 || num2 < 0 || num3 < 0)
{
continue;
}
var total = num1 + num2 + num3;
if (total > lastTotal)
{
numIncreased++;
}
lastTotal = total;
}
return $"<+white>{numIncreased}";
} }
} }