speed up day2part2, tidy up a bit

This commit is contained in:
Ben Harris 2019-12-02 21:02:12 -05:00
parent 50e089ec1d
commit c8fd30d2ec
1 changed files with 8 additions and 31 deletions

39
Day2.cs
View File

@ -13,44 +13,19 @@ namespace aoc2019
.Split(',')
.Select(num => int.Parse(num));
private static bool debug = false;
public static void Log(string log)
public static void RunIntCode(ref List<int> v)
{
if (debug)
Console.WriteLine(log);
}
public static void RunIntCode(ref List<int> output)
{
for (var i = 0; i < output.Count(); i++)
{
if (output[i] == 1)
for (var i = 0; v[i] != 99; i += 4)
switch (v[i])
{
var val = output[output[i + 1]] + output[output[i + 2]];
Log($"saving {val} to {output[i + 3]}");
output[output[i + 3]] = val;
i += 3;
case 1: v[v[i + 3]] = v[v[i + 1]] + v[v[i + 2]]; break;
case 2: v[v[i + 3]] = v[v[i + 1]] * v[v[i + 2]]; break;
}
else if (output[i] == 2)
{
var val = output[output[i + 1]] * output[output[i + 2]];
Log($"saving {val} to {output[i + 3]}");
output[output[i + 3]] = val;
i += 3;
}
else
{
Log($"invalid operation: found {output[i]} at {i}");
break;
}
Log(string.Join(',', output));
}
}
public static void Part1()
{
List<int> output = input.ToList();
var output = input.ToList();
output[1] = 12;
output[2] = 2;
@ -62,6 +37,7 @@ namespace aoc2019
public static void Part2()
{
List<int> output;
for (var i = 0; i < 100; i++)
{
for (var j = 0; j < 100; j++)
@ -75,6 +51,7 @@ namespace aoc2019
if (output[0] == 19690720)
{
Console.WriteLine($"{100 * i + j}");
return;
}
}
}