day 19
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
98f3016b47
commit
34d27fd823
|
@ -26,7 +26,7 @@ namespace aoc2019.test
|
||||||
[DataRow(typeof(Day15), "280", "400")]
|
[DataRow(typeof(Day15), "280", "400")]
|
||||||
[DataRow(typeof(Day16), "90744714", "82994322")]
|
[DataRow(typeof(Day16), "90744714", "82994322")]
|
||||||
[DataRow(typeof(Day17), "2804", "")]
|
[DataRow(typeof(Day17), "2804", "")]
|
||||||
[DataRow(typeof(Day19), "", "")]
|
[DataRow(typeof(Day19), "114", "10671712")]
|
||||||
public void TestAllDays(Type dayType, string part1, string part2)
|
public void TestAllDays(Type dayType, string part1, string part2)
|
||||||
{
|
{
|
||||||
// create day instance
|
// create day instance
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Linq;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
using aoc2019.lib;
|
using aoc2019.lib;
|
||||||
|
|
||||||
namespace aoc2019
|
namespace aoc2019
|
||||||
|
@ -6,30 +7,43 @@ namespace aoc2019
|
||||||
public sealed class Day19 : Day
|
public sealed class Day19 : Day
|
||||||
{
|
{
|
||||||
private readonly IntCodeVM vm;
|
private readonly IntCodeVM vm;
|
||||||
|
private readonly long[,] grid;
|
||||||
public Day19() : base(19, "Tractor Beam")
|
public Day19() : base(19, "Tractor Beam")
|
||||||
{
|
{
|
||||||
vm = new IntCodeVM(Input.First());
|
vm = new IntCodeVM(Input.First());
|
||||||
|
grid = new long[50, 50];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
public override string Part1()
|
||||||
{
|
{
|
||||||
var count = 0;
|
|
||||||
|
|
||||||
for (var x = 0; x < 50; x++)
|
for (var x = 0; x < 50; x++)
|
||||||
for (var y = 0; y < 50; y++)
|
for (var y = 0; y < 50; y++)
|
||||||
{
|
{
|
||||||
vm.AddInput(x, y);
|
vm.Reset();
|
||||||
vm.Run();
|
vm.Run(x, y);
|
||||||
if (vm.Result == 1) count++;
|
grid[x, y] = vm.Result;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $"{count}";
|
return $"{grid.Cast<long>().Sum()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
public override string Part2()
|
||||||
{
|
{
|
||||||
return "";
|
for (int x = 101, y = 0;; x++)
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
vm.Reset();
|
||||||
|
vm.Run(x, y);
|
||||||
|
if (vm.Result == 1) break;
|
||||||
|
y++;
|
||||||
|
}
|
||||||
|
|
||||||
|
vm.Reset();
|
||||||
|
vm.Run(x - 99, y + 99);
|
||||||
|
if (vm.Result == 1)
|
||||||
|
return $"{(x - 99) * 1e4 + y}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue