Exemplo n.º 1
0
        static void Main(string[] args)
        {
            PizzaSliceInputEntity  pizzaInputEntity = new PizzaSliceInputEntity();
            PizzaSliceOutputEntity pizzaSliceOutput = new PizzaSliceOutputEntity();
            PizzaHandler           handler          = new PizzaHandler();

            var filePath = Path.Combine(Directory.GetCurrentDirectory(), INPUT_FILE_NAME);

            string fullText = File.ReadAllText(filePath);

            var fullTextSplitted = PizzaHelper.SplitTextInput(fullText, separator);

            handler.ToPizzaEntity(fullTextSplitted, pizzaInputEntity);

            //calculate logic
            handler.CalculateNumberOfSlices(pizzaInputEntity, pizzaSliceOutput);

            var outputText = PizzaHelper.CreateOutputText(pizzaSliceOutput);

            if (File.Exists(OUTPUT_FILE_NAME))
            {
                File.Delete(OUTPUT_FILE_NAME);
            }

            File.WriteAllText(OUTPUT_FILE_NAME, outputText);
        }
        public void CalculateNumberOfSlices(PizzaSliceInputEntity pizzaInput, PizzaSliceOutputEntity pizzaOutput)
        {
            var listToCalculate = new List <PizzaSliceInputWithIndexEntity>();

            var numberOfSlicesToOrder = new List <long>();

            numberOfSlicesToOrder.AddRange(pizzaInput.NumberOfSlicesToOrder);

            var withIndex = pizzaInput.NumberOfSlicesToOrder.Select((item, indexf) => new
            {
                Value = item,
                Index = indexf
            })
                            .ToList();

            listToCalculate = withIndex.Select(ass => new PizzaSliceInputWithIndexEntity
            {
                Index = ass.Index,
                Value = ass.Value
            })
                              .ToList();

            var listDescToCalculate = listToCalculate.OrderByDescending(n => n.Value).ToList();

            pizzaOutput.PizzaSummedNumbers = CalculateSumRecursion(listDescToCalculate, pizzaInput.PizzaToOrder).OrderBy(o => o).ToList();

            pizzaOutput.NumberOfPizzaTypes = pizzaOutput.PizzaSummedNumbers.Count;
        }
Exemplo n.º 3
0
 public static string CreateOutputText(PizzaSliceOutputEntity pizzaSliceOutput)
 {
     return($@"{pizzaSliceOutput.NumberOfPizzaTypes}{Environment.NewLine}" +
            $@"{String.Join(" ", pizzaSliceOutput.PizzaSummedNumbers.Select(p => p.ToString()))}");
 }