aoc/AOC2022/Day03.cs
Ben Harris 754489dfe7
All checks were successful
continuous-integration/drone/push Build is passing
add Day.ProcessInput() and move everything out of the constructor
2022-12-08 14:40:40 -05:00

23 lines
700 B
C#

namespace AOC2022;
/// <summary>
/// Day 3: <a href="https://adventofcode.com/2022/day/3"/>
/// </summary>
public sealed class Day03 : Day
{
public Day03() : base(2022, 3, "Rucksack Reorganization")
{
}
public override void ProcessInput()
{
}
public override object Part1() =>
Input.Sum(rucksack => RankItem(rucksack.Chunk(rucksack.Length / 2).Aggregate<IEnumerable<char>>((a, b) => a.Intersect(b)).Single()));
public override object Part2() =>
Input.Chunk(3).Sum(group => RankItem(group.Aggregate<IEnumerable<char>>((a, b) => a.Intersect(b)).Single()));
private static int RankItem(char item) => item - (char.IsUpper(item) ? '&' : '`');
}