Example #1
0
        static void Part_one()
        {
            var data    = DataSeed.GetData();
            var results = ReportRepairer.FindPair(data);

            Console.WriteLine($"Pair found: [{results[0]}, {results[1]}]");
            Console.WriteLine($"Result: {results[0] * results[1]}");
        }
Example #2
0
        static void Part_two()
        {
            var data    = DataSeed.GetData();
            var results = ReportRepairer.FindTriplet(data);

            Console.WriteLine($"Triplet found: [{results[0]}, {results[1]}, {results[2]}] ({results[0] + results[1] + results[2]})");
            Console.WriteLine($"Result: {results[0] * results[1] * results[2]}");
        }
        private static void FindValidPasswords(ValidatorRule ruleType)
        {
            Func <string, bool> validatorRule = null;

            switch (ruleType)
            {
            case ValidatorRule.ORIGINAL:
                validatorRule = PasswordValidator.ValidateOriginalRule;
                break;

            case ValidatorRule.POSITIONAL:
                validatorRule = PasswordValidator.ValidatePositionalRule;
                break;

            default:
                throw new ArgumentException("Validator rule not supported");
            }
            ;

            var passwords  = DataSeed.GetData();
            var validCount = 0;

            foreach (var password in passwords)
            {
                var valid = validatorRule(password);

                if (valid)
                {
                    validCount++;
                }

                Console.WriteLine($"{password} => {valid}");
            }

            Console.WriteLine($"\nTotal passwords: {passwords.Count()}");
            Console.WriteLine($"Total valid passwords: {validCount}");
        }