using System.Text; namespace Day_03.Day_03 { public class Day03 { public static string InputPath = "Day 03/day-03-input.txt"; public static string GetPart1(byte[] data) { string[] rucksackData = Encoding.UTF8.GetString(data).Split(Environment.NewLine); int priorityCount = 0; // go throu each ruchsack foreach (string rucksack in rucksackData.Where(x => !string.IsNullOrWhiteSpace(x))) { // split the data line down the middel string rucksackOne = rucksack.Substring(0, rucksack.Length / 2); string rucksackTwo = rucksack.Substring(rucksack.Length / 2, rucksack.Length / 2); char prioChar = rucksackOne.Where(x => rucksackTwo.Contains(x)).First(); priorityCount += prioChar > 'Z' ? (prioChar - 'a' + 1) : (prioChar - 'A' + 27); } return priorityCount.ToString(); } public static string GetPart2(byte[] data) { string[] rucksackData = Encoding.UTF8.GetString(data).Split(Environment.NewLine); int priorityCount = 0; 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(); } } }