AdventOfCode/AdventOfCode.Solutions/2024/Day 02/Day02.cs
2024-12-02 08:46:18 +01:00

93 lines
2.7 KiB
C#

using AdventOfCode.Core.Shared.IO;
using System;
using System.Reflection;
namespace AdventOfCode.Solutions._2024
{
public class Day02 : IChallange
{
public int Year => 2024;
public int Day => 2;
private readonly IInputReader _inputReader;
public Day02(IInputReader inputReader)
{
_inputReader = inputReader;
_inputReader.SetInput(this);
}
//2
//
public async Task<string> GetSolutionPart1()
{
//_inputReader.SetSampleInput(true);
string[] data = await _inputReader.ReadAsArrayString();
int save = data.Length;
foreach (string line in data)
{
int[] intData = line.Split(' ').Select(int.Parse).ToArray();
bool isIncrease = intData[1] < intData[0];
for (int index = 1; index < intData.Length; index++)
{
int trueDiff = intData[index - 1] - intData[index];
int diff = Math.Abs(trueDiff);
if (diff < 1 || diff > 3)
{
save--;
break;
}
if (isIncrease && trueDiff < 0)
{
save--;
break;
}
else if (!isIncrease && trueDiff > 0)
{
save--;
break;
}
}
}
return save.ToString();
}
//
//
public async Task<string> GetSolutionPart2()
{
string[] data = await _inputReader.ReadAsArrayString();
int save = data.Length;
foreach (string line in data)
{
int[] intData = line.Split(' ').Select(int.Parse).ToArray();
bool isIncrease = intData[1] < intData[0];
for (int index = 1; index < intData.Length; index++)
{
int trueDiff = intData[index - 1] - intData[index];
int diff = Math.Abs(trueDiff);
if (diff < 1 || diff > 3)
{
save--;
break;
}
if (isIncrease && trueDiff < 0)
{
save--;
break;
}
else if (!isIncrease && trueDiff > 0)
{
save--;
break;
}
}
}
return save.ToString();
}
}
}