set Part1() and Part2() to protected
This commit is contained in:
parent
5c58a0cfea
commit
0957ac4c44
6
Day.cs
6
Day.cs
|
@ -9,7 +9,7 @@ namespace aoc2019
|
||||||
{
|
{
|
||||||
public abstract int DayNumber { get; }
|
public abstract int DayNumber { get; }
|
||||||
|
|
||||||
public virtual IEnumerable<string> Input =>
|
protected virtual IEnumerable<string> Input =>
|
||||||
File.ReadLines($"input/day{DayNumber}.in");
|
File.ReadLines($"input/day{DayNumber}.in");
|
||||||
|
|
||||||
public virtual void AllParts(bool verbose = false)
|
public virtual void AllParts(bool verbose = false)
|
||||||
|
@ -31,7 +31,7 @@ namespace aoc2019
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract string Part1();
|
protected abstract string Part1();
|
||||||
public abstract string Part2();
|
protected abstract string Part2();
|
||||||
}
|
}
|
||||||
}
|
}
|
4
Day1.cs
4
Day1.cs
|
@ -32,12 +32,12 @@ namespace aoc2019
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{masses.Sum(FuelCost)}";
|
return $"{masses.Sum(FuelCost)}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
return $"{masses.Sum(FullCost)}";
|
return $"{masses.Sum(FullCost)}";
|
||||||
}
|
}
|
||||||
|
|
4
Day10.cs
4
Day10.cs
|
@ -23,7 +23,7 @@ namespace aoc2019
|
||||||
|
|
||||||
public override int DayNumber => 10;
|
public override int DayNumber => 10;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
foreach (var asteroid in asteroids)
|
foreach (var asteroid in asteroids)
|
||||||
{
|
{
|
||||||
|
@ -43,7 +43,7 @@ namespace aoc2019
|
||||||
return $"{bestcansee}";
|
return $"{bestcansee}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
static IEnumerable<(int x, int y, double angle, double dist)> GetValue(
|
static IEnumerable<(int x, int y, double angle, double dist)> GetValue(
|
||||||
Queue<(int x, int y, double angle, double dist)> q)
|
Queue<(int x, int y, double angle, double dist)> q)
|
||||||
|
|
4
Day11.cs
4
Day11.cs
|
@ -80,12 +80,12 @@ namespace aoc2019
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{PaintShip(0).Count}";
|
return $"{PaintShip(0).Count}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
var map = PaintShip(1);
|
var map = PaintShip(1);
|
||||||
var minX = (int) map.Keys.Select(x => x.x).Min();
|
var minX = (int) map.Keys.Select(x => x.x).Min();
|
||||||
|
|
4
Day12.cs
4
Day12.cs
|
@ -53,7 +53,7 @@ namespace aoc2019
|
||||||
step++;
|
step++;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
while (step < 1000)
|
while (step < 1000)
|
||||||
Step();
|
Step();
|
||||||
|
@ -61,7 +61,7 @@ namespace aoc2019
|
||||||
return $"{moons.Sum(p => p.TotalEnergy)}";
|
return $"{moons.Sum(p => p.TotalEnergy)}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
int cycleX = 0, cycleY = 0, cycleZ = 0;
|
int cycleX = 0, cycleY = 0, cycleZ = 0;
|
||||||
|
|
||||||
|
|
4
Day13.cs
4
Day13.cs
|
@ -55,14 +55,14 @@ namespace aoc2019
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
vm.Reset();
|
vm.Reset();
|
||||||
vm.Run();
|
vm.Run();
|
||||||
return $"{vm.output.Where((v, i) => (i + 1) % 3 == 0 && v == 2).Count()}";
|
return $"{vm.output.Where((v, i) => (i + 1) % 3 == 0 && v == 2).Count()}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
vm.Reset();
|
vm.Reset();
|
||||||
vm.memory[0] = 2;
|
vm.memory[0] = 2;
|
||||||
|
|
4
Day14.cs
4
Day14.cs
|
@ -50,14 +50,14 @@ namespace aoc2019
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
available = new Dictionary<string, long> {{"ORE", long.MaxValue}};
|
available = new Dictionary<string, long> {{"ORE", long.MaxValue}};
|
||||||
Consume("FUEL", 1);
|
Consume("FUEL", 1);
|
||||||
return $"{long.MaxValue - available["ORE"]}";
|
return $"{long.MaxValue - available["ORE"]}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
const long capacity = 1_000_000_000_000;
|
const long capacity = 1_000_000_000_000;
|
||||||
available = new Dictionary<string, long> {{"ORE", capacity}};
|
available = new Dictionary<string, long> {{"ORE", capacity}};
|
||||||
|
|
4
Day15.cs
4
Day15.cs
|
@ -14,12 +14,12 @@ namespace aoc2019
|
||||||
|
|
||||||
public override int DayNumber => 15;
|
public override int DayNumber => 15;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return "intcode solution";
|
return "intcode solution";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
4
Day16.cs
4
Day16.cs
|
@ -4,12 +4,12 @@ namespace aoc2019
|
||||||
{
|
{
|
||||||
public override int DayNumber => 16;
|
public override int DayNumber => 16;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
4
Day2.cs
4
Day2.cs
|
@ -30,12 +30,12 @@ namespace aoc2019
|
||||||
return v[0];
|
return v[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{RunIntCode(12, 2)}";
|
return $"{RunIntCode(12, 2)}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
for (var i = 0; i < 100; i++)
|
for (var i = 0; i < 100; i++)
|
||||||
for (var j = 0; j < 100; j++)
|
for (var j = 0; j < 100; j++)
|
||||||
|
|
4
Day3.cs
4
Day3.cs
|
@ -17,12 +17,12 @@ namespace aoc2019
|
||||||
|
|
||||||
public override int DayNumber => 3;
|
public override int DayNumber => 3;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{intersections.Min(x => Math.Abs(x.Item1) + Math.Abs(x.Item2))}";
|
return $"{intersections.Min(x => Math.Abs(x.Item1) + Math.Abs(x.Item2))}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
// add 2 to count (0, 0) on both lines
|
// add 2 to count (0, 0) on both lines
|
||||||
return $"{intersections.Min(x => wires[0][x] + wires[1][x]) + 2}";
|
return $"{intersections.Min(x => wires[0][x] + wires[1][x]) + 2}";
|
||||||
|
|
4
Day4.cs
4
Day4.cs
|
@ -38,12 +38,12 @@ namespace aoc2019
|
||||||
return IsValid(i) && s.Select(c => s.Count(j => j == c)).Any(c => c == 2);
|
return IsValid(i) && s.Select(c => s.Count(j => j == c)).Any(c => c == 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{Enumerable.Range(start, end).Count(IsValid)}";
|
return $"{Enumerable.Range(start, end).Count(IsValid)}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
return $"{Enumerable.Range(start, end).Count(HasOnePair)}";
|
return $"{Enumerable.Range(start, end).Count(HasOnePair)}";
|
||||||
}
|
}
|
||||||
|
|
4
Day5.cs
4
Day5.cs
|
@ -65,13 +65,13 @@ namespace aoc2019
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
RunIntCode(tape.ToList(), 1);
|
RunIntCode(tape.ToList(), 1);
|
||||||
return $"{output}";
|
return $"{output}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
RunIntCode(tape.ToList(), 5);
|
RunIntCode(tape.ToList(), 5);
|
||||||
return $"{output}";
|
return $"{output}";
|
||||||
|
|
4
Day6.cs
4
Day6.cs
|
@ -23,12 +23,12 @@ namespace aoc2019
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
return $"{input.Keys.Sum(o => GetParents(o).Count - 1)}";
|
return $"{input.Keys.Sum(o => GetParents(o).Count - 1)}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
var you = GetParents("YOU");
|
var you = GetParents("YOU");
|
||||||
var san = GetParents("SAN");
|
var san = GetParents("SAN");
|
||||||
|
|
4
Day7.cs
4
Day7.cs
|
@ -16,7 +16,7 @@ namespace aoc2019
|
||||||
public override int DayNumber => 7;
|
public override int DayNumber => 7;
|
||||||
|
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
long i, largest = 0;
|
long i, largest = 0;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ namespace aoc2019
|
||||||
return $"{largest}";
|
return $"{largest}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
long i, largest = 0;
|
long i, largest = 0;
|
||||||
|
|
||||||
|
|
4
Day8.cs
4
Day8.cs
|
@ -16,13 +16,13 @@ namespace aoc2019
|
||||||
|
|
||||||
public override int DayNumber => 8;
|
public override int DayNumber => 8;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
var l = photo.OrderBy(layer => layer.Count(pixel => pixel == '0')).First();
|
var l = photo.OrderBy(layer => layer.Count(pixel => pixel == '0')).First();
|
||||||
return $"{l.Count(p => p == '1') * l.Count(p => p == '2')}";
|
return $"{l.Count(p => p == '1') * l.Count(p => p == '2')}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
return Enumerable.Range(0, 25 * 6)
|
return Enumerable.Range(0, 25 * 6)
|
||||||
.Select(p => Enumerable.Range(0, photo.Count)
|
.Select(p => Enumerable.Range(0, photo.Count)
|
||||||
|
|
4
Day9.cs
4
Day9.cs
|
@ -14,14 +14,14 @@ namespace aoc2019
|
||||||
|
|
||||||
public override int DayNumber => 9;
|
public override int DayNumber => 9;
|
||||||
|
|
||||||
public override string Part1()
|
protected override string Part1()
|
||||||
{
|
{
|
||||||
vm.Reset();
|
vm.Reset();
|
||||||
vm.Run(1);
|
vm.Run(1);
|
||||||
return $"{vm.output.ToDelimitedString(",")}";
|
return $"{vm.output.ToDelimitedString(",")}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Part2()
|
protected override string Part2()
|
||||||
{
|
{
|
||||||
vm.Reset();
|
vm.Reset();
|
||||||
vm.Run(2);
|
vm.Run(2);
|
||||||
|
|
Loading…
Reference in New Issue