Day 4 solution

This commit is contained in:
2022-12-04 00:47:34 -06:00
parent 3fc0340738
commit 4b51ff9970
4 changed files with 1047 additions and 601 deletions

View File

@ -77,6 +77,8 @@
<EmbeddedResource Include="inputs\02a.txt" /> <EmbeddedResource Include="inputs\02a.txt" />
<None Remove="inputs\03a.txt" /> <None Remove="inputs\03a.txt" />
<EmbeddedResource Include="inputs\03a.txt" /> <EmbeddedResource Include="inputs\03a.txt" />
<None Remove="inputs\04a.txt" />
<EmbeddedResource Include="inputs\04a.txt" />
</ItemGroup> </ItemGroup>
</Project> </Project>

File diff suppressed because it is too large Load Diff

6
inputs/04a.txt Normal file
View File

@ -0,0 +1,6 @@
2-4,6-8
2-3,4-5
5-7,7-9
2-8,3-7
6-6,4-6
2-6,4-8

39
src/04.cs Normal file
View File

@ -0,0 +1,39 @@
namespace aoc2022;
internal class Day04 : Day
{
private readonly List<((int min, int max) one,(int min, int max) two)> assignmentPairs = new();
internal override void Parse()
{
foreach (var line in Util.ReadAllLines("04"))
{
var assignments = line.Split(',');
var firstAssignment = assignments[0].Split('-');
var secondAssignment = assignments[1].Split('-');
var firstRange = (int.Parse(firstAssignment[0]), int.Parse(firstAssignment[1]));
var secondRange = (int.Parse(secondAssignment[0]), int.Parse(secondAssignment[1]));
assignmentPairs.Add((firstRange, secondRange));
}
}
internal override string Part1()
{
var overlaps = assignmentPairs.Count(x =>
(x.one.min >= x.two.min && x.one.max <= x.two.max) ||
(x.two.min >= x.one.min && x.two.max <= x.one.max));
return $"# complete overlaps: <+white>{overlaps}";
}
internal override string Part2()
{
var overlaps = assignmentPairs.Count(x =>
(x.one.min >= x.two.min && x.one.min <= x.two.max) ||
(x.one.max >= x.two.min && x.one.max <= x.two.max) ||
(x.two.min >= x.one.min && x.two.min <= x.one.max) ||
(x.two.max >= x.one.min && x.two.max <= x.one.max));
return $"# partial overlaps: <+white>{overlaps}";
}
}