AdventOfCode2022/AOC2022/Puzzles/Day4.cs

31 lines
922 B
C#

using System.Collections.Generic;
namespace AOC2022.Puzzles;
public class Day4 : IPuzzle
{
private readonly IEnumerable<int[][]> _parsedData;
public Day4(IEnumerable<string> linesFromFile)
{
_parsedData = linesFromFile
.Select(line => line.Trim().Split(",")
.Select(assignments => assignments.Split("-")
.Select(range => Convert.ToInt32(range))
.ToArray())
.ToArray());
}
public void SolveFirstPuzzle()
{
var fullOverlapCount = _parsedData.Count(asns =>
(asns[0][0] <= asns[1][0] && asns[0][1] >= asns[1][1]) || (asns[0][0] >= asns[1][0] && asns[0][1] <= asns[1][1]));
Console.WriteLine($"Assignment Pairs with Full overlap : {fullOverlapCount}");
}
public void SolveSecondPuzzle()
{
var partialOverlapCount = _parsedData.Count(asns => asns[0][0] <= asns[1][1] && asns[0][1] >= asns[1][0]);
Console.WriteLine($"Assignment Pairs with any overlap : {partialOverlapCount}");
}
}