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 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 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(); } } }