From 837527d487c7e232b36dd87c95a15b7852f2e057 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 16 Dec 2020 17:17:35 -0500 Subject: refactor to two-digit day names and add puzzlename --- Day02.cs | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 Day02.cs (limited to 'Day02.cs') diff --git a/Day02.cs b/Day02.cs new file mode 100644 index 0000000..3a79970 --- /dev/null +++ b/Day02.cs @@ -0,0 +1,46 @@ +using System.Collections.Generic; +using System.Linq; + +namespace aoc2019 +{ + internal sealed class Day02 : Day + { + private readonly IEnumerable input; + + public Day02() : base(2, "1202 Program Alarm") + { + input = Input.First().Split(',').Select(int.Parse); + } + + public int RunIntCode(int noun, int verb) + { + var v = input.ToList(); + v[1] = noun; + v[2] = verb; + + for (var i = 0; v[i] != 99; i += 4) + v[v[i + 3]] = v[i] switch + { + 1 => v[v[i + 1]] + v[v[i + 2]], + 2 => v[v[i + 1]] * v[v[i + 2]] + }; + + return v[0]; + } + + protected override string Part1() + { + return $"{RunIntCode(12, 2)}"; + } + + protected override string Part2() + { + for (var i = 0; i < 100; i++) + for (var j = 0; j < 100; j++) + if (RunIntCode(i, j) == 19690720) + return $"{100 * i + j}"; + + return string.Empty; + } + } +} \ No newline at end of file -- cgit 1.4.1