AdventOfCode2025/AdventOfCode2026/Day1.cs
2025-12-01 13:34:09 +01:00

64 lines
No EOL
1.6 KiB
C#

namespace AdventOfCode2026;
public sealed class Day1 : Solution
{
private const int MaxArrow = 100;
public override string SolvePart1()
{
var arrow = 50;
var zeroCounter = 0;
IEnumerable<string> lines = InputReader.ReadLines(1);
foreach (var line in lines)
{
var number = int.Parse(line[1..]);
arrow = line.First() switch
{
'L' => arrow - number,
'R' => arrow + number,
var _ => arrow
};
arrow = (arrow % MaxArrow + MaxArrow) % MaxArrow;
if (arrow == 0)
{
zeroCounter++;
}
}
return zeroCounter.ToString();
}
public override string SolvePart2()
{
var arrow = 50;
var zeroCounter = 0;
IEnumerable<string> lines = InputReader.ReadLines(1);
foreach (var line in lines)
{
var number = int.Parse(line[1..]);
zeroCounter += number / MaxArrow;
var remainingNumber = number % MaxArrow;
var end = line.First() switch
{
'L' => arrow - remainingNumber,
'R' => arrow + remainingNumber,
var _ => arrow
};
if (arrow != 0 && end is > MaxArrow or < 0)
{
zeroCounter++;
}
arrow = (end % MaxArrow + MaxArrow) % MaxArrow;
if (arrow == 0)
{
zeroCounter++;
}
}
return zeroCounter.ToString();
}
}