From 5b4353d91fd80a2f060ce15ebe95e8d316373671 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 5 Dec 2019 01:19:39 -0500 Subject: tidy up, refactor program.cs by day --- Day2.cs | 44 +++++++++++++------------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) (limited to 'Day2.cs') diff --git a/Day2.cs b/Day2.cs index 10dc15f..e469bcc 100644 --- a/Day2.cs +++ b/Day2.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -7,54 +6,37 @@ namespace aoc2019 { public class Day2 : Day { + public override int DayNumber => 2; + private static readonly IEnumerable input = - File.ReadLines("input/day2.in") - .First() - .Split(',') - .Select(num => int.Parse(num)); + File.ReadLines("input/day2.in").First().Split(',').Select(int.Parse); - public static void RunIntCode(ref List v) + public static List RunIntCode(int noun, int verb, List v) { + v[1] = noun; v[2] = verb; + for (var i = 0; v[i] != 99; i += 4) switch (v[i]) { 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; } + return v; } - public override void Part1() + public override string Part1() { - var output = input.ToList(); - output[1] = 12; - output[2] = 2; - - RunIntCode(ref output); - - Console.WriteLine($"{output[0]}"); + return $"{RunIntCode(12, 2, input.ToList())[0]}"; } - public override void Part2() + public override string Part2() { - List output; - for (var i = 0; i < 100; i++) - { for (var j = 0; j < 100; j++) - { - output = input.ToList(); - output[1] = i; - output[2] = j; + if (RunIntCode(i, j, input.ToList())[0] == 19690720) + return $"{100 * i + j}"; - RunIntCode(ref output); - - if (output[0] == 19690720) - { - Console.WriteLine($"{100 * i + j}"); - return; - } - } - } + return string.Empty; } } } -- cgit 1.4.1