ben
/
aoc
1
0
Fork 0

2015 day 23
continuous-integration/drone Build is passing Details

This commit is contained in:
Ben Harris 2023-11-14 15:40:45 -05:00
parent 5a54ec7bd7
commit a0d8bc1f07
2 changed files with 43 additions and 3 deletions

View File

@ -27,6 +27,7 @@ public class Test2015
[DataRow(typeof(Day19), "576", "207")]
[DataRow(typeof(Day20), "665280", "705600")]
[DataRow(typeof(Day21), "78", "148")]
[DataRow(typeof(Day23), "255", "334")]
public void CheckAllDays(Type dayType, string part1, string part2)
{
Common.CheckDay(dayType, part1, part2);

View File

@ -9,7 +9,46 @@ public sealed class Day23() : Day(2015, 23, "Opening the Turing Lock")
{
}
public override object Part1() => "";
private int RunOperations(int initialA = 0, int initialB = 0)
{
Dictionary<char, int> registers = new();
registers['a'] = initialA;
registers['b'] = initialB;
public override object Part2() => "";
}
var input = Input.ToList();
for (var i = 0; i < input.Count;)
{
switch (input[i][0..3])
{
case "hlf":
registers[input[i++][4]] /= 2;
break;
case "tpl":
registers[input[i++][4]] *= 3;
break;
case "inc":
registers[input[i++][4]]++;
break;
case "jmp":
i += int.Parse(input[i][4..]);
break;
case "jie":
i += registers[input[i][4]] % 2 == 0
? int.Parse(input[i][7..])
: 1;
break;
case "jio":
i += registers[input[i][4]] == 1
? int.Parse(input[i][7..])
: 1;
break;
}
}
return registers['b'];
}
public override object Part1() => RunOperations();
public override object Part2() => RunOperations(1);
}