From c8fd30d2ec507e40feb785cefc91f08906afa093 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Mon, 2 Dec 2019 21:02:12 -0500 Subject: [PATCH] speed up day2part2, tidy up a bit --- Day2.cs | 39 ++++++++------------------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/Day2.cs b/Day2.cs index b6be148..3cbb1ec 100644 --- a/Day2.cs +++ b/Day2.cs @@ -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 v) { - if (debug) - Console.WriteLine(log); - } - - public static void RunIntCode(ref List 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 output = input.ToList(); + var output = input.ToList(); output[1] = 12; output[2] = 2; @@ -62,6 +37,7 @@ namespace aoc2019 public static void Part2() { List 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; } } }