Example #1
0
        public object SolvePartTwo()
        {
            var lines = InputLineParser.GetAllLines(Day14Input.REINDEERS);
            var track = new Track();

            foreach (var line in lines)
            {
                var reindeer = ReindeerParser.ParseReindeer(line);
                track.Commit(reindeer);
            }

            for (int i = 0; i < 2503; i++)
            {
                track.AdvanceAllBySecond();
                var temporaryLeaders = track.GetLeadersByTraveledDistance();
                foreach (var leader in temporaryLeaders)
                {
                    leader.AwardByPoints(1);
                }
            }

            var winner = track.GetWinnerByScore();

            return(winner.Score);
        }
Example #2
0
        public object SolvePartOne()
        {
            var lines = InputLineParser.GetAllLines(Day14Input.REINDEERS);
            var track = new Track();

            foreach (var line in lines)
            {
                var reindeer = ReindeerParser.ParseReindeer(line);
                track.Commit(reindeer);
            }

            track.LetThemRunFor(2503);

            var distance = track.GetLeadersByTraveledDistance().Max(r => r.TraveledDistance);

            return(distance);
        }