93 lines
2.7 KiB
C#
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();
|
|
}
|
|
}
|
|
} |