This commit is contained in:
Ben Harris 2019-12-02 01:00:53 -05:00
parent fd4b64cb61
commit 50e089ec1d
3 changed files with 88 additions and 0 deletions

84
Day2.cs Normal file
View File

@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace aoc2019
{
public class Day2
{
private static IEnumerable<int> input =
File.ReadLines("input/day2.in")
.First()
.Split(',')
.Select(num => int.Parse(num));
private static bool debug = false;
public static void Log(string log)
{
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)
{
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 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();
output[1] = 12;
output[2] = 2;
RunIntCode(ref output);
Console.WriteLine($"{output[0]}");
}
public static void Part2()
{
List<int> output;
for (var i = 0; i < 100; i++)
{
for (var j = 0; j < 100; j++)
{
output = input.ToList();
output[1] = i;
output[2] = j;
RunIntCode(ref output);
if (output[0] == 19690720)
{
Console.WriteLine($"{100 * i + j}");
}
}
}
}
}
}

View File

@ -10,6 +10,9 @@ namespace aoc2019
{
Day1.Part1();
Day1.Part2();
Day2.Part1();
Day2.Part2();
}
}
}

1
input/day2.in Normal file
View File

@ -0,0 +1 @@
1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,10,1,19,1,19,9,23,1,23,13,27,1,10,27,31,2,31,13,35,1,10,35,39,2,9,39,43,2,43,9,47,1,6,47,51,1,10,51,55,2,55,13,59,1,59,10,63,2,63,13,67,2,67,9,71,1,6,71,75,2,75,9,79,1,79,5,83,2,83,13,87,1,9,87,91,1,13,91,95,1,2,95,99,1,99,6,0,99,2,14,0,0