Complete part2 of day05
This commit is contained in:
parent
7047e8e42c
commit
f9cb505e1d
|
@ -15,9 +15,11 @@ namespace day05
|
|||
);
|
||||
Console.WriteLine((lines[0].Length / 4) + 1);
|
||||
List<char>[] stacks = new List<char>[(lines[0].Length / 4) + 1];
|
||||
List<char>[] stacks2 = new List<char>[(lines[0].Length / 4) + 1];
|
||||
for (int i = 0; i < stacks.Length; i++)
|
||||
{
|
||||
stacks[i] = new List<char>();
|
||||
stacks2[i] = new List<char>();
|
||||
}
|
||||
int instructionsStartLine = 0;
|
||||
foreach (var line in lines.Select((val, index) => new { val, index }))
|
||||
|
@ -36,6 +38,7 @@ namespace day05
|
|||
{
|
||||
Console.WriteLine("Gotcha" + line.val[i + 1]);
|
||||
stacks[i / 4].Add(line.val[i + 1]);
|
||||
stacks2[i / 4].Add(line.val[i + 1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +46,7 @@ namespace day05
|
|||
for (int i = 0; i < stacks.Length; i++)
|
||||
{
|
||||
stacks[i].Reverse();
|
||||
stacks2[i].Reverse();
|
||||
}
|
||||
List<Instruction> instrucList = new List<Instruction>();
|
||||
for (int i = instructionsStartLine; i < lines.Length; i++)
|
||||
|
@ -62,14 +66,28 @@ namespace day05
|
|||
}
|
||||
foreach (Instruction instruc in instrucList)
|
||||
{
|
||||
List<char> part2Items = new List<char>();
|
||||
for (int i = 0; i < instruc.Ammont; i++)
|
||||
{
|
||||
// Part 1
|
||||
stacks[instruc.Destination].Add(stacks[instruc.Source].Last());
|
||||
stacks[instruc.Source].RemoveAt(stacks[instruc.Source].Count - 1);
|
||||
part2Items.Add(stacks2[instruc.Source].Last());
|
||||
stacks2[instruc.Source].RemoveAt(stacks2[instruc.Source].Count - 1);
|
||||
}
|
||||
part2Items.Reverse();
|
||||
stacks2[instruc.Destination].AddRange(part2Items);
|
||||
}
|
||||
// Print Results
|
||||
Console.WriteLine("Part 1 Results:\n");
|
||||
foreach (List<char> stack in stacks)
|
||||
{
|
||||
Console.Write(stack[stack.Count - 1] + "\t");
|
||||
|
||||
}
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("Part 2 Results:\n");
|
||||
foreach (List<char> stack in stacks2)
|
||||
{
|
||||
Console.Write(stack[stack.Count - 1] + "\t");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue