2023-06-07 22:28:51 +00:00
|
|
|
namespace AdventOfCode.Year2022;
|
|
|
|
|
|
|
|
public class Day4
|
|
|
|
{
|
|
|
|
public Day4()
|
|
|
|
{
|
2023-06-24 21:26:39 +00:00
|
|
|
var lines = File.ReadAllLines("inputs/day4.txt");
|
|
|
|
var containedCount = 0;
|
|
|
|
var intersectedCount = 0;
|
|
|
|
foreach (var line in lines)
|
2023-06-07 22:28:51 +00:00
|
|
|
{
|
|
|
|
if (IsContained(line))
|
|
|
|
containedCount++;
|
|
|
|
if (IsIntersected(line))
|
|
|
|
intersectedCount++;
|
|
|
|
}
|
2023-06-24 21:26:39 +00:00
|
|
|
|
|
|
|
Console.WriteLine($@"
|
|
|
|
Day4 Solution
|
|
|
|
Part1 Result: {containedCount}
|
|
|
|
Part2 Result: {intersectedCount}
|
|
|
|
|
|
|
|
=============================");
|
2023-06-07 22:28:51 +00:00
|
|
|
}
|
|
|
|
|
2023-06-07 23:12:01 +00:00
|
|
|
private static bool IsContained(string line)
|
2023-06-07 22:28:51 +00:00
|
|
|
{
|
2023-06-24 21:26:39 +00:00
|
|
|
var limits = GetLimits(line);
|
2023-06-07 22:28:51 +00:00
|
|
|
return (limits[0][0] >= limits[1][0] && limits[0][1] <= limits[1][1])
|
2023-06-24 21:26:39 +00:00
|
|
|
|| (limits[1][0] >= limits[0][0] && limits[1][1] <= limits[0][1]);
|
2023-06-07 22:28:51 +00:00
|
|
|
}
|
2023-06-07 23:12:01 +00:00
|
|
|
|
|
|
|
private static bool IsIntersected(string line)
|
2023-06-07 22:28:51 +00:00
|
|
|
{
|
2023-06-24 21:26:39 +00:00
|
|
|
var limits = GetLimits(line);
|
2023-06-07 22:28:51 +00:00
|
|
|
return (limits[0][1] >= limits[1][0] && limits[0][0] <= limits[1][1])
|
|
|
|
|| (limits[1][1] >= limits[0][0] && limits[1][0] <= limits[0][1]);
|
|
|
|
}
|
|
|
|
|
2023-06-07 23:12:01 +00:00
|
|
|
private static int[][] GetLimits(string line)
|
2023-06-07 22:28:51 +00:00
|
|
|
{
|
2023-06-24 21:26:39 +00:00
|
|
|
var pair = line.Split(",");
|
|
|
|
var pair1 = pair[0].Split("-");
|
|
|
|
var pair2 = pair[1].Split("-");
|
|
|
|
return new[]
|
2023-06-07 22:28:51 +00:00
|
|
|
{
|
2023-06-24 21:26:39 +00:00
|
|
|
new[] { Convert.ToInt32(pair1[0]), Convert.ToInt32(pair1[1]) },
|
|
|
|
new[] { Convert.ToInt32(pair2[0]), Convert.ToInt32(pair2[1]) }
|
2023-06-07 22:28:51 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|