feat: solve day 5 part 1

This commit is contained in:
Stevan Freeborn
2024-12-05 23:10:08 -06:00
parent d8f67e85ca
commit a9f9dec7aa
9 changed files with 292 additions and 6 deletions
+36
View File
@@ -0,0 +1,36 @@
namespace PrintQueue;
class PuzzleParser
{
public ParseResult Parse(string input)
{
var inputParts = input.Split($"{Environment.NewLine}{Environment.NewLine}");
var rules = ParseRules(inputParts[0]);
var updates = ParseUpdates(inputParts[1]);
return new ParseResult(rules, updates);
}
private static List<Update> ParseUpdates(string input)
{
return input.Split(Environment.NewLine)
.Select(s => new Update(
s.Split(",").Select(int.Parse).ToList()
))
.ToList();
}
private static List<OrderRule> ParseRules(string input)
{
return input
.Split(Environment.NewLine)
.Select(s =>
{
var parts = s.Split("|");
return new OrderRule(
int.Parse(parts[0]),
int.Parse(parts[1])
);
})
.ToList();
}
}