| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using Day2;
- if (args.Length < 2)
- {
- Console.WriteLine("Requires 2 args: inputFileName expected");
- return -1;
- }
- var inputFile = args[0];
- var numbers = args[1].Split(',').Select(x => int.Parse(x)).ToList();
- if (numbers.Count < 3)
- {
- Console.WriteLine("Requires 3 expected values R,G,B");
- return -1;
- }
- var expected = new SampleSet(numbers[0], numbers[1], numbers[2]);
- var parser = new GameParser();
- var sum = 0;
- foreach (var game in parser.Parse(inputFile))
- {
- //game.Print();
- var pass = true;
- foreach (var set in game.Samples)
- {
- if (set.Red > expected.Red || set.Green > expected.Green || set.Blue > expected.Blue)
- {
- pass = false;
- break;
- }
- }
- if (pass)
- {
- //Console.WriteLine("PASS");
- sum += game.Id;
- }
- else
- {
- //Console.WriteLine("FAIL");
- }
- Console.WriteLine();
- }
- Console.WriteLine();
- Console.WriteLine($"Part 1 sum: {sum}");
- Console.WriteLine();
- sum = 0;
- foreach (var game in parser.Parse(inputFile))
- {
- game.Print();
- var max = game.Samples.Aggregate(new SampleSet(0, 0, 0), (prev, current) => new SampleSet(
- Math.Max(prev.Red, current.Red),
- Math.Max(prev.Green, current.Green),
- Math.Max(prev.Blue, current.Blue)
- ));
-
- Console.WriteLine($"Max: {max.Power()}");
- max.Print();
- sum += max.Power();
-
- Console.WriteLine();
- }
- Console.WriteLine();
- Console.WriteLine($"Part 2 sum of powers: {sum}");
- return 0;
|