31 lines
922 B
C#
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}");
|
|
}
|
|
} |