AdventOfCode/Year2022/Day4.cs

50 lines
1.5 KiB
C#

namespace AdventOfCode.Year2022;
public class Day4
{
public Day4()
{
Console.WriteLine("Day4 Solution");
string[] lines = File.ReadAllLines("inputs/day4.txt");
int containedCount = 0;
int intersectedCount = 0;
foreach (string line in lines)
{
if (IsContained(line))
containedCount++;
if (IsIntersected(line))
intersectedCount++;
}
Console.WriteLine($"Part1 Result: {containedCount}");
Console.WriteLine($"Part2 Result: {intersectedCount}");
Console.WriteLine("\n=============================\n");
}
private static bool IsContained(string line)
{
int[][] limits = GetLimits(line);
return (limits[0][0] >= limits[1][0] && limits[0][1] <= limits[1][1])
|| (limits[1][0] >= limits[0][0] && limits[1][1] <= limits[0][1]);
}
private static bool IsIntersected(string line)
{
int[][] limits = GetLimits(line);
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]);
}
private static int[][] GetLimits(string line)
{
string[] pair = line.Split(",");
string[] pair1 = pair[0].Split("-");
string[] pair2 = pair[1].Split("-");
return new []
{
new [] {Convert.ToInt32(pair1[0]), Convert.ToInt32(pair1[1])},
new [] {Convert.ToInt32(pair2[0]), Convert.ToInt32(pair2[1])}
};
}
}