27 lines
948 B
C#
27 lines
948 B
C#
namespace AdventOfCode.Solutions._2022
|
|
{
|
|
public class Day03Part2 : Answerable
|
|
{
|
|
public override int Year { get; set; } = 2022;
|
|
public override int Day { get; set; } = 3;
|
|
public override int Part { get; set; } = 2;
|
|
|
|
public override string GetAnswer(byte[] data)
|
|
{
|
|
string[] rucksackData = GetAsStringArray(data);
|
|
int priorityCount = 0;
|
|
|
|
// go throu each ruchsack
|
|
for (int index = 0; index < rucksackData.Length; index += 3)
|
|
{
|
|
// get the 3 ruchsacks
|
|
string[] ruchsacks = rucksackData.Skip(index).Take(3).ToArray();
|
|
char prioChar = ruchsacks[0].Where(x => ruchsacks[1].Contains(x) && ruchsacks[2].Contains(x)).First();
|
|
priorityCount += prioChar > 'Z' ? (prioChar - 'a' + 1) : (prioChar - 'A' + 27);
|
|
}
|
|
|
|
return priorityCount.ToString();
|
|
}
|
|
}
|
|
}
|