Beispiel #1
0
        public Solver()
        {
            var input = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                        .ToList();

            Image image = null;

            foreach (var line in input)
            {
                if (line.StartsWith("Tile "))
                {
                    if (image != null)
                    {
                        _images.Add(image);
                    }
                    image = new Image(int.Parse(line.Replace("Tile ", string.Empty).Replace(":", string.Empty)));
                }
                else if (line.StartsWith(".") || line.StartsWith("#"))
                {
                    image.Content.Add(line);
                }
            }

            _images.Add(image);
            _images.ForEach(image => image.GetSidesWithInversion().ForEach(x =>
            {
                if (!_sides.TryAdd(x, new List <int> {
                    image.Id
                }))
                {
                    _sides[x].Add(image.Id);
                }
            }));
        }
Beispiel #2
0
 public Solver()
 {
     _joltages = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                 .Select(i => int.Parse(i))
                 .OrderBy(i => i)
                 .ToList();
 }
Beispiel #3
0
        public Solver()
        {
            var switchToMessagePopulation = false;
            var input = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                        .ToList();

            foreach (var line in input)
            {
                if (line == string.Empty)
                {
                    switchToMessagePopulation = true;
                    continue;
                }

                if (switchToMessagePopulation)
                {
                    _messages.Add(line);
                }
                else
                {
                    var split = line.Split(": ");
                    _ruleBook.Add(int.Parse(split[0]), line.Contains("\"") ? new FixedCharacterRule(split[1]) : new PositionRule(split[1], _ruleBook));
                }
            }
        }
Beispiel #4
0
 private void Initialize()
 {
     InputInstructions = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt")[0]
                         .Split(',')
                         .Select(x => long.Parse(x))
                         .ToList();
 }
Beispiel #5
0
 public Solver()
 {
     AsteroidMap = InputFileReader
                   .GetInput($"Year2019/Inputs/Day{Day}.txt")
                   .Select(x => x.ToCharArray())
                   .ToList();
 }
Beispiel #6
0
        public Solver()
        {
            var lines = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                        .ToList();

            foreach (var line in lines)
            {
                var split       = line.Split(" (");
                var ingredients = split[0].Split(" ");
                var recipe      = new Recipe();
                recipe.Ingredients.AddRange(ingredients);

                split[1]
                .Replace("contains ", string.Empty)
                .Replace(")", string.Empty)
                .Split(", ").ToList()
                .ForEach(x =>
                {
                    var a = _alergens.FirstOrDefault(a => a.Name == x);
                    if (a == null)
                    {
                        a = new Alergen(x);
                        _alergens.Add(a);
                    }

                    a.Recipes.Add(recipe);
                    recipe.Alergens.Add(a);
                });

                _recipes.Add(recipe);
            }
        }
Beispiel #7
0
        public Solver()
        {
            var input = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt");
            var mode  = 0;

            foreach (var line in input)
            {
                mode = line == "your ticket:" ? 1 : line == "nearby tickets:" ? 2 : mode;

                if (line == string.Empty || line == "your ticket:" || line == "nearby tickets:")
                {
                    continue;
                }

                switch (mode)
                {
                case 0:
                    var split      = line.Split(':');
                    var valueRange = split[1].Split(" or ").Select(x => new Range(int.Parse(x.Split('-')[0]), int.Parse(x.Split('-')[1])));

                    _ticketProperties.Add(new TicketProperty(split[0], valueRange));
                    break;

                case 1:
                    _myTicket = line.Split(',').Select(x => int.Parse(x)).ToList();
                    break;

                case 2:
                    _nearbyTickets.Add(line.Split(',').Select(x => int.Parse(x)).ToList());
                    break;
                }
            }
        }
Beispiel #8
0
        public Solver()
        {
            _orbitMap = new Dictionary <string, Node>();
            var input = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt");

            BuildOrbitMap(input);
        }
Beispiel #9
0
 public Solver()
 {
     _program = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt")[0]
                .Split(',')
                .Select(x => long.Parse(x))
                .ToList();
 }
Beispiel #10
0
        private void Initialize()
        {
            _playerOne = new Queue <int>();
            _playerTwo = new Queue <int>();
            var input    = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt").ToList();
            var playerId = 0;

            foreach (var line in input)
            {
                if (line.StartsWith("Player"))
                {
                    playerId++;
                }
                else if (line != string.Empty)
                {
                    if (playerId == 1)
                    {
                        _playerOne.Enqueue(int.Parse(line));
                    }
                    else
                    {
                        _playerTwo.Enqueue(int.Parse(line));
                    }
                }
            }
        }
Beispiel #11
0
 public Solver()
 {
     _passwords = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                  .Select(x => {
         var parts  = x.Split(' ');
         var policy = parts[0].Split('-');
         return(new CorporatePassword
         {
             Letter = parts[1].Replace(":", string.Empty)[0],
             PolicyField2 = int.Parse(policy[0]),
             PolicyField1 = int.Parse(policy[1]),
             Password = parts[2]
         });
     }).ToList();
 }
Beispiel #12
0
        public Solver()
        {
            _bags = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                    .Select(line =>
            {
                var ruleSplit = line.Split("contain");

                var content = ParseBagContent(ruleSplit);

                return(new Bag
                {
                    Color = ruleSplit[0].Replace(" bags ", string.Empty),
                    NestedBags = content
                });
            }).ToHashSet();
        }
Beispiel #13
0
        public Solver()
        {
            _initialOccupiedSpaces = new HashSet <Point4D>();

            var input = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt");

            for (int y = 0; y < input.Count; y++)
            {
                for (int x = 0; x < input[y].Length; x++)
                {
                    if (input[y][x] == '#')
                    {
                        _initialOccupiedSpaces.Add(new Point4D(x, y, 0, 0));
                    }
                }
            }
        }
Beispiel #14
0
 public Solver()
 {
     _input = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt");
 }
Beispiel #15
0
 public Solver()
 {
     _reactionList = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt");
 }
Beispiel #16
0
 public Solver()
 {
     Expenses = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                .Select(e => int.Parse(e))
                .ToList();
 }
Beispiel #17
0
 public Solver()
 {
     _numbers = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt")
                .Select(i => long.Parse(i))
                .ToList();
 }
Beispiel #18
0
 public Solver()
 {
     _seatingPlan = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt");
 }
Beispiel #19
0
 public Solver()
 {
     Input = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt")[0];
 }
Beispiel #20
0
        public Solver()
        {
            var input = InputFileReader.GetInput($"Year2019/Inputs/Day{Day}.txt");

            TraceBothCables(input);
        }
Beispiel #21
0
 public Solver()
 {
     _tileList = InputFileReader.GetInput($"Year2020/Inputs/Day{Day}.txt").ToList();
 }